Prezentowany skrypt filtruje słowa ale czy jest możliwość go nieco zmodyfikowania po to ze jak wykryje jakieś niewłaściwe słowo, komentarz w ogóle nie zostanie dodany i będzie widnieć napis że: "użyto niewłaściwe wyrazy (czy coś w tym stylu)" i wysłania wiadomość w ogóle się nie pojawi...
Modyfikowany skrypt:
<?php function censor($content){ $replace=array('(?:a|@|*)','(?:b|8|3|*)','(?:i|1|l|!|*)','(?:l|1|i|!|*)','(?|0|*)','(?
|?|*)','(?:s|$|*)');
foreach($words_list as $badword){ if($len <= 0) continue; $rep=''; for($i=0; $i < $len; $i++) break; { $rep.='*****'; } // Check to see if this word has brackets around it. If it is bracked, censor it in a simple form. $content = preg_replace("@".substr($badword, 1, ($len - 2))."@i", substr($rep, 0, (strlen($rep) - 2)), $content); continue; } $badword=''; $badword.=$badwordpreg[$i]; } $badword="/$badword/i"; } return $content; } if ($message != '') { $name = censor($name); $message = censor($message); $newRow = '<div class="shoutbox"><b>'. strip_tags ($name) . '</b><br><font class="TextSmallDesc">' . date('d.m.Y H:i') . '</font><br>' . ($message) . '</div><br>'; } ?>
Dziękuje i pozdrawiam...