Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Funkcja htmlspecialchars i wyjątki
Forum PHP.pl > Forum > Przedszkole
kaerzet
witam

mam taki problem, uzywam funkcji htmlspecialchars() żeby zamieniło tagi html na zwykły tekst. A jak zrobić żeby zamieniło mi wszystkie tagi na treść OPRÓCZ np. <br /> questionmark.gif
TomASS
A w jakim celu chcesz pozostawić <br>?
kaerzet
no po to, że jak ktoś wpisze np. <lol> to żeby mi to pokazało ale żeby nie zamieniało mi <br /> na "tekst" tylko żeby robiłą tą następną linie.

ps. sorry za to że nie wstawiłem "prtefixu" smile.gif
Fipaj
No to wstaw ten prefix winksmiley.jpg

  1. <?php
  2.  
  3. str_replace ('<', '&gt;', $output);
  4. str_replace ('>', '&lt;', $output);
  5.  
  6. ?>


I starczy winksmiley.jpg
PS. Mogłem się pomylić z "<" i ">" - jakby co, zmień winksmiley.jpg

[edited]
@tiraeth: ups...
tiraeth
@Fipaj: Przeczytaj pytanie zanim odpowiesz. Twoja odpowiedź ni jak ma się do udzielenia pomocy, bo Twój kod też zamieni znacznik <br /> na napis &gt;br /&lt;

A nie lepiej strip_tags?
czachor
@tiraeth: ale @kaerzet-owi chodzi o to, żeby nie usuwać tagów, tylko zmienić wszystkie '<' i '>' na '&gt;' i '&lt;', a zostawić bez zmian tylko '<br />'... przynajmniej ja tak to zrozumiałem.

Najlepiej to chyba by jakimś wyrażeniem potraktować, ale nie jestem w tym mocny, więc trochę naokoło:
  1. <?php
  2. $output = str_replace('&lt;br /&gt;', '<br />', htmlspecialchars($output, ENT_NOQUOTES));
  3. ?>
sobstel
nie lepiej po prostu nowe linie zostawić nowymi liniami czyli "\n" i konwertować to za pomocą nl2br ?
bronx
moim zdaniem najlepszy sposób to tak:

  1. <?php
  2. $tresc = htmlspecialchars($tresc);
  3.  
  4. tresc=str_replace("&lt;br /&gt;","<br />",$tresc);
  5. ?>
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.