Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: funckja cenzurujaca tekst
Forum PHP.pl > Forum > PHP
slavo
  1. <?php
  2. ?
  3.  
  4. include(&#092;"bbcode.php\");
  5.  
  6. function cenzoruj($tekst)
  7.  
  8. {
  9.  
  10. $tekst = strip_tags($tekst);                                 // usuwa tagi
  11. $tekst = bb2html($tekst);                                    // obsluga BBCode
  12. $tekst = substr($tekst,0,1000);                              // max limit dlugosci tekstu
  13. $tekst = nl2br($tekst);                                      // wstawia <br /> w miejsce entera
  14. $tekst = eregi_replace(&#092;"(<br />{2,100})|(<br>{2,100})\",\"<br />\",$tekst); // zamienia wiecej niz 2 entery na 1
  15. $tekst = wordwrap($tekst, 50, &#092;" \", 1);                       // kroi dlugie wyrazy
  16.  
  17.  
  18. $cenzor = &#092;"<span style=\"color:red\\"><b>(!)</b></span>\";
  19. $wrong = array (&#092;"pamparam\"); // zdefiniuj ocenzurowane slowa
  20. $tekst = str_replace($wrong,$cenzor,$tekst);
  21.  
  22.  
  23. return $tekst;
  24.  
  25. }
  26.  
  27. ?>


Okej, temat skonczyony.. dziala w takim przypadku:
  1. <?
  2.  
  3. include(&#092;"bbcode.php\");
  4.  
  5. function cenzoruj($tekst)
  6.  
  7. {
  8.  
  9. $tekst = strip_tags($tekst);                                 // usuwa tagi
  10. $tekst = bb2html($tekst);                                    // obsluga BBCode
  11. $tekst = substr($tekst,0,1000);                              // max limit dlugosci tekstu
  12. $tekst = str_replace(&#092;"r\",\"\",$tekst);                        // usuwa znak konca wiersza
  13. $tekst = eregi_replace(&#092;"(n{2,100})\",\"n\",$tekst);           // zamienia wiecej niz 2 nowe linie na 1
  14. $tekst = nl2br($tekst);                                      // wstawia <br /> w miejsce entera
  15. $tekst = wordwrap($tekst, 50, &#092;" \", 1);                       // kroi dlugie wyrazy
  16.  
  17.  
  18. $cenzor = &#092;"<span style=\"color:red\\"><b>(!)</b></span>\";
  19. $wrong = array (&#092;"pamparam\"); // zdefiniuj ocenzurowane slowa
  20. for($i=0; $i<count($wrong); $i++) $tekst=eregi_replace($wrong[$i], $cenzor, $tekst);
  21.  
  22.  
  23. return $tekst;
  24.  
  25. }
  26.  
  27. ?>


I tyle :-)
broU
może denne rozwiązanie , ale można by puszczać linijke (zdanie / wyrażenie / itp.) w pętli , aż zostaną tylko dwa <br /> ... napisałem to , ponieważ nie znam się na wyrażeniach regularnych , a chciałem zaproponować inne rozwiązanie (:
Dabroz
  1. <?php
  2. $text=str_replace(&#092;"nr\",\"n\",$text);
  3.  
  4. $text=preg_replace(&#092;"#(n)+#\",\"n\",$text);
  5.  
  6. $text=nl2br($text);
  7. ?>
Zepco
Wiem, że to wyjątek jakich mało, ale jak Twój skrypt zachowa się w przypadku słowa wymachuj? Czy uzna ten wyraz za niedozwolony?
slavo
Skrypt filtruje wpisy do ksiegi gosci.. sadze ze uzycie tam takiego slowa jak wymachuje.. jest graniczne z cudem smile.gif

A jak sie zachowa?

Tak: Wymac(!)e
broU
hm , to daj przed każdym niedozwolonym wyrazem spacje ? wtedy w 'wymachuje' skrypt nie znajdzie ' ch..' . Gorzej , gdy wyraz jest na początku i nie ma spacji przed nim (:
Paul
Cytat(Zepco @ 2004-07-12 17:24:52)
Wiem, że to wyjątek jakich mało

hehehe... MS Word gdy wpisze sie tekst "Kto pyta nie błądzi" i da sprawdzanie gramatyczne twierdzi, ze "wskazany wyraz uznawany jest za wulgarny" smile.gif

PS. Jak ktos sie uprze i tak napisze co chce chodzby przerywajac to co ma do powiedzenia spacjami czy podresleniami itp. - czasem trzeba samemu pobawic sie w cenzora smile.gif
Dabroz
W ogole funkcje cenzorujace latwo ominac, np. w phpBB wystarczy zamiast strasznybluzg napisac np. strasznybluzg i juz nie ocenzuruje :|
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.