Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Filtr HTML, usuwanie tagów html z tekstu
Ned-Yoshi
post
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 24.12.2003
Skąd: Lubin

Ostrzeżenie: (0%)
-----


Na forum nie doszukałem się na razie żadnego rozwiązania tego problemu więc postanowiłem go przedstawić.

Problem jest następujący: jak zrobić, by z wczytywanych z bay dancyh komentarzy usuwane były tagi html. O tym problemie uświadomilem sobie, gdy jeden z moich kolegów wkleił mi w komentarz kod alertu jakiegoś... podobnie mozna wstawić jakiś wielki rysunek rozbijając stronkę.

Istnieją więc dwa sposoby rozwiązania tego problemu:
1. Żeby wczytywał komentarze doslownie, tzn. tagi html byly widoczne w przeglądarce i nie byly wykonywane.
2. Usunąć te tagi (ciąg między '<' a '>' z tymi znakami włącznie), ale to skolei może spowodować zamieszanie w przypadku gdy ktoś przez przypadek da jeden z tych znaków.

Pierwsze rozwiązanie jest chyba stosowane w witrynach wykorzystujących bbCode (od razu mówię, że ja nie potrzebuję możliwości formatowania tekstu komentarzy), ale nie mam pojecia jak wygląda ta funkcja. Czy może ktoś pomóc?
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




http://pl.php.net/strip_tags
Go to the top of the page
+Quote Post
wolguy
post
Post #3





Grupa: Zarejestrowani
Postów: 219
Pomógł: 10
Dołączył: 9.01.2005

Ostrzeżenie: (0%)
-----


do tej zmiennej gdzie masz przechowywaną zawartość komentarzy proponuję użyć czegoś takiego:

$tresc = str_replace("&", "&amp;", $tresc);
$tresc = str_replace("<", "&lt;", $tresc);
$tresc = str_replace(">", "&gt;", $tresc);
$tresc = str_replace("\r\n", "<br>", $tresc);
Go to the top of the page
+Quote Post
Ociu
post
Post #4





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Cytat(wolguy @ 2005-07-19 18:16:43)
$tresc = str_replace("\r\n", "<br>", $tresc);

nl2br" title="Zobacz w manualu PHP" target="_manual
Go to the top of the page
+Quote Post
Pedros
post
Post #5





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 17.04.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Witam...
Mam problem zachaczający o to samo...
Również chodzi o dodawanie komentarzy(oraz cmsa). Różnica jest taką, że zależy mi również na zamianie & na &amp;
Zastanawiam się co jest lepszym rozwiązaniem... zamiana podczas wczytywania z bazy danych, czy też przy zapisywaniu do bazy.
Wydaje się, iż najlepszym rozwiązaniem jest htmlspecialchars lub htmlentities, ale....
gdy sam wpiszę &amp, to funkcja zamienia mi to na &amp;amp;

Proszę o wskazówkę w jaki sposób najlepiej to rozwiązać...
Go to the top of the page
+Quote Post
Kinool
post
Post #6





Grupa: Zarejestrowani
Postów: 560
Pomógł: 0
Dołączył: 15.07.2003
Skąd: Kwidzyn

Ostrzeżenie: (0%)
-----


ja uzywam htmlspecialchars" title="Zobacz w manualu PHP" target="_manual co do stosowanie to przed zapisem do bazy bo robisz to raz a nie 1000 razy przy kazdym wejsciu na strone (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Pedros
post
Post #7





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 17.04.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


no ok... też mi się wydaje, że tak lepiej...
ale radzisz sobie jakoś z &amp;amp; (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?
bo liczenie na to, że w polu textarea nikt nie wpisze(lub ja nie zapomnę) &amp; jest lekko idiotyczne...

wydaje się, iż kombinacja html_entity_decode i
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 22:42