
Пример данного фильтра написан на языке PHP. О том, где можно применять подобные фильтры можно говорить довольно долго, да и вообще, его использование ограничивается лишь вашей фантазией.
Стоит рассказать о сути его работы. Фильтр выполнен в виде функции, которой передаются два параметра: проверяемый текст, а так же режим работы.
Фильтр имеет два режима работы, в качестве значения второго параметра может быть передано значение 1 либо 0.
При параметре 1 – функция производит замену найденных слов, при параметре 0 – производит поиск без замены. В любом случае, если были найдены фильтруемые слова, функция будет возвращать значение равное 1, иначе 0.
Рассмотрим код функции:
function BadWordFilter(&$text, $replace)
{
// массив фильтруемых слов, а так же значения для их замены
$bads = array (
array("очень","оч*нь"),
array("плохое","пл**ое"),
array("слово","сл*во")
);
if($replace==1) { // производим замену
$remember = $text;
for($i=0;$i<sizeof($bads);$i++){ // перебераем строку в цикле
$text = eregi_replace($bads[$i][0],$bads[$i][1],$text); // замена
}
if($remember!=$text) return 1; // если есть изменения, возврат 1
} else { // производим поиск без замены
for($i=0;$i<sizeof($bads);$i++) { // перебераем строку в цикле
if(eregi($bads[$i][0],$text)) return 1; // если найдено, возврат 1
}
}
}
Производим замену слов.
$any = BadWordFilter($wordsToFilter, 1);
Или производим поиск слов без замены.
$any = BadWordFilter($wordsToFilter, 0);
$any — будет содержать значение 1, если найдено, хотя бы одно слово.
$wordsToFilter – будет содержать строку после фильтрации.