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?


--------------------
Szydercy Page: llllll 60%
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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 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; 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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 23:32