Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][html]Wycinanie tagów
Forum PHP.pl > Forum > Przedszkole
redelek
Witam,

Mam taki formularz
  1. <meta http-equiv="content-type" content="text/html; charset=ISO8859-2">
  2. <meta name="generator" content="PSPad editor, www.pspad.com">
  3. </head>
  4. <body>
  5. <form action="form.php" method="post" enctype="multipart/form-data">
  6.  
  7. Tytuł: <input name="f_tytul" type="text" size="45" maxlength="45"><br>
  8. Opis:<br>
  9. <textarea name="f_opis" cols="45" rows="8"></textarea><br>
  10. Linki:<br>
  11. <textarea name="f_linki" cols="45" rows="8"></textarea><br>
  12. <input name="Wyslij" type="submit" value="Wyľlij">
  13.  
  14.  
  15. </form>
  16. </body>


Dane są przesyłane do skryptu i chodzi mi o usunięcie tagów html wstawionych w pola f_opis i f_linki. Dozwolone znaki to <b><i><u>.
Czy można to jakoś zrobić. ?


Dzięki
Redelek

Bawiłem się stripslashes i addslashes, ale to nie to albo nie umiem zastosować tego
lectric
Taka oto funkcja:

  1. <?php
  2. function taghtml($str)
  3. {
  4. $approvedtags = array(
  5. "p"=>2, 
  6. "b"=>1,
  7. "i"=>1,
  8. "a"=>1,
  9. "em"=>1,
  10. "br"=>1,
  11. "strong"=>1,
  12. "blockquote"=>1,
  13. "tt"=>1,
  14. "hr"=>1,
  15. "li"=>1,
  16. "ol"=>1,
  17. "ul"=>1
  18. );
  19.  
  20. $str = stripslashes($str);
  21. $str = eregi_replace("<[[:space:]]*([^>]*)[[:space:]]*>","<1>",$str);
  22. $str = eregi_replace("<a([^>]*)href=\"?([^\"]*)\"?([^>]*)>",
  23. "<a href=\"2\">", $str);
  24. $tmp = "";
  25. while (eregi("<([^> ]*)([^>]*)>",$str,$reg))
  26. {
  27. $i = strpos($str,$reg[0]);
  28. $l = strlen($reg[0]);
  29. if ($reg[1][0] == "/")
  30. $tag = strtolower(substr($reg[1],1));
  31. else
  32. $tag = strtolower($reg[1]);
  33. if ($a = $approvedtags[$tag])
  34. if ($reg[1][0] == "/")
  35. $tag = "</$tag>";
  36. elseif ($a == 1)
  37. $tag = "<$tag>";
  38. else
  39. $tag = "<$tag " . $reg[2] . ">";
  40. else
  41. $tag = "";
  42. $tmp .= substr($str,0,$i) . $tag;
  43. $str = substr($str,$i+$l);
  44. }
  45. $str = $tmp . $str;
  46.  
  47.  
  48. $str = ereg_replace("<?","",$str);
  49. return $str;
  50. }
  51. ?>


ustaw sobie w tablicy zezwolenia.
redelek
Cytat(lectric @ 12.09.2007, 15:32:26 ) *
Taka oto funkcja:

  1. <?php
  2. function taghtml($str)
  3. {
  4. $approvedtags = array(
  5. "p"=>2, 
  6. "b"=>1,
  7. "i"=>1,
  8. "a"=>1,
  9. "em"=>1,
  10. "br"=>1,
  11. "strong"=>1,
  12. "blockquote"=>1,
  13. "tt"=>1,
  14. "hr"=>1,
  15. "li"=>1,
  16. "ol"=>1,
  17. "ul"=>1
  18. );
  19.  
  20. $str = stripslashes($str);
  21. $str = eregi_replace("<[[:space:]]*([^>]*)[[:space:]]*>","<1>",$str);
  22. $str = eregi_replace("<a([^>]*)href=\"?([^\"]*)\"?([^>]*)>",
  23. "<a href=\"2\">", $str);
  24. $tmp = "";
  25. while (eregi("<([^> ]*)([^>]*)>",$str,$reg))
  26. {
  27. $i = strpos($str,$reg[0]);
  28. $l = strlen($reg[0]);
  29. if ($reg[1][0] == "/")
  30. $tag = strtolower(substr($reg[1],1));
  31. else
  32. $tag = strtolower($reg[1]);
  33. if ($a = $approvedtags[$tag])
  34. if ($reg[1][0] == "/")
  35. $tag = "</$tag>";
  36. elseif ($a == 1)
  37. $tag = "<$tag>";
  38. else
  39. $tag = "<$tag " . $reg[2] . ">";
  40. else
  41. $tag = "";
  42. $tmp .= substr($str,0,$i) . $tag;
  43. $str = substr($str,$i+$l);
  44. }
  45. $str = $tmp . $str;
  46. $str = ereg_replace("<?","",$str);
  47. return $str;
  48. }
  49. ?>


ustaw sobie w tablicy zezwolenia.

DZIĘKUJĘ exclamation.gif!!
lectric
proszę, następnym razem nie cytuj w taki sposob.
redelek
Cytat(lectric @ 12.09.2007, 15:35:18 ) *
proszę, następnym razem nie cytuj w taki sposob.


Nie wiem jak, ale postaram się smile.gif dzięki serdeczne
mild
Nie łatwiej użyć strip_tags?
qqrq
redelek => lectricowi zapewne chodziło żebyś nie wklejał całego poprzedniego postu (bo po co), zmniejszasz czytelność forum... Nawiasem mówiąc mild ma chyba rację - strip_tags jest funkcją której (chyba) szukasz
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.