PHP

Фильтр мата

Богат и могуч русский язык, но выразительность его в полной мере на бумаге не всегда держится. Существуют еще некоторые нормы, которых мы и будем придерживаться. Задача достаточна проста - нужно заменить в тексте сообщения корни общеизвестных и пока еще широко не допущенных в средства массовой информации слов первой буквой корня и многоточием, сохранив приставки, суффиксы, окончания, чтобы не потерять смысл и выразительность послания. В то же время моральные нормы не будут грубо попраны грязной матерщиной. Алгоритм работы фильтра: берем текст, заменяем корни недозволенных слов первыми буквами корней и соответствующим количеством точек. Такой фильтр можно оформить в виде функции, которой будет передаваться исходный текст и которая возвратит отфильтрованный текст. Код функции:

Массив $words_in содержит заменяемые корни, которые здесь записаны в кодах ASCII (чтобы устои морали не расшатывать, уж извините, дал слово...), массив $words_out - заменяющие корни, как договаривались, с многоточием, функция str_ireplace() заменяет первые на вторые без учета регистра - вдруг кто-то большими буквами привык писать, как на заборе. Строка return $str_out; возвращает отфильтрованный результат. Вставим код функции в код гостевой книги в самое начало, а строку обращения к функции записи послания изменим, дополнив вызовом фильтра:

if($name & $text){$text= filtr_mata($text); write($name,$text);}

Вот и весь фильтр. При необходимости список замен можете дополнить самостоятельно. Осталось скачать, проверить его работу и пойти дальше.

Рейтинг@Mail.ru