ďťż

[php] preg_replace(), a cenzura

       

Podstrony


telcocafe

witam

oto mój problemik. postanowiłem sobie zrobić skrypt doskonały do cenzurowania wypowiedzi userów na stronie. i podam przykład komentarza (z enterami):


kurka kUrka
kurka prokurka


i prosty skrypcik z zastosowaniem wyrażeń regularnych:

function cenzura($txt) { $pyt='select * from cenzura'; $wyk=zapytanie($pyt); while($cen=mysql_fetch_array($wyk)) { $txt=preg_replace('#'.$cen['wyraz'].'#i','***', $txt); } return $txt; }

...dzięki któremu otrzymuję coś jak:


*** ***
*** pro***


i teraz: co zrobić aby wszystko było jak wyżej z wyjątkiem wyrazu "prokurka" który ewidentnie nie jest wulgaryzmem. z wyrażeniami dopiero zaczynam więc przyda się gotowiec wzorca. z góry dzięki!

dla przykładu coś co chciałbym otrzymać:


*** ***
*** prokurka




a nie lepiej zrobić tablicę cenzura zawierającą słowa nieporządane a później
$wypowiedz = str_replace($cenzura, '***', $wypowiedz);
Użytkownik chicken81 edytował ten post 12 październik 2005, 08:58
tak by było lepiej ale jakby ktoś wpisał np.

kuRka
to skrypt już by tego nie wyłapał. str_replace() jest "czułe" na wielkość znaków :/
Użytkownik sdr edytował ten post 12 październik 2005, 19:16

str_replace() jest "czułe" na wielkość znaków :/
Ale str_ireplace() już nie.




str_ireplace

(PHP 5)
str_ireplace --  Case-insensitive version of str_replace().


no w sumie to by było dobre, ale nie mam jeszcze na serwerze dostępnego php5 <_< jest tu może ktoś kto zna się lepiej ode mnie na wyrażeniach regularnych?

użyj przy tą Twoją funkcją co zamienia: strtolower (zamienia wszystkie litery na małe) I nie będziesz miał już kłopotu ;)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.