Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z funkcją htmlspecialchars()
Forum PHP.pl > Forum > PHP
AboutMe
Problem jest następujący. Filtruję dane z bazy mysql przy pomocy htmlspecialchars, jednak po zamianie znaku \n na <br>, oczywiście działa nie tak jak powinien- jest odstęp + znak <br>
  1. $content2 = htmlspecialchars($content1");
  2. echo implode('<br>', explode("\n", $sContent2 ), );
marcio
Wiec dodaj trim()/ltrim() i tyle
AboutMe
Nie o to mi chodzi.
Pobierając dane z bazy najpierw zastępuje znaki typu >,< po to aby kod nie ładował się do ciała dokumentu tylko wyświetlał się w przeglądarce, a następnie wyświetlam treść zastępując znak \n używając <br>, po to aby tekst nie wyświetlał się w 1 linii. Tyle że dodatkowo wyświetlają się <br>:

Cytat
<br />
<br />
<br />
<br />
<br />

vsdvwwervr <br />
agregrzfevr <br />
regareg5 <br />
<br />
<br />
Void
To nie zamieniaj znaków \n na <br> tylko użyj funkcji nl2br

bełdzio
problem zapewne wynika z tego, że entery w bazie zapisane masz w konwencji Windowsa tzn \r\n i w chwili kiedy pozbywasz się \n zostaje \r, który powoduje odstęp smile.gif
AboutMe
No niestety efekt jest taki sam.

Faktycznie mam znak powrotu karetki w tabeli. I co na to poradzić?
bełdzio
użyj nl2br właśnie w tym celu powstała ta funkcja smile.gif
fander
napisz tak
  1. echo implode('<br>',explode("\n",htmlspecialchars(trim(strip_tags($to_z_bazy)))));
AboutMe
Dzięki za pomoc.


------------------------------
Ludzie kochani, mam jeszcze 1 problem, mam w bazie tekst od razu przekonwertowany na utf8, no i htmlspecialchars zamienia mi &, przez co nie mogę np. wyświetlić znaku é
Czy istnie je może odmiana htmlspecialchars która zamienia tylko te znaki: <>?
Dumdas
napisz własną funkcję, lub użyj mojej:
  1. function specialchars($s) {
  2. $s = str_replace('<', '&lt', $s);
  3. $s = str_replace('>', '&gt', $s);
  4. }
winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.