Есть: Код (Text): function antimat($str) { $s = '[^\wа-я]*?'; $cenzur = '<font color=\"red\">\"РОМАШКА\"<font>'; $ArrayPattern = array( '[^вvw]'.$s.'[еeё]'.$s.'[бb]', '[eе]'.$s.'[бb]'.$s.'[aа]', '[лl]'.$s.'[оo0]'.$s.'[хxh]', '[еe]'.$s.'[лl]'.$s.'[дd]'.$s.'[аa@]', '[мm]'.$s.'[uyу]'.$s.'[дd]'.$s.'[^рpr]', '[пp]'.$s.'[иiеe]'.$s.'[зz3]'.$s.'[дd]', '[^ю]'.$s.'[бb]'.$s.'[лl]'.$s.'(?:я|ja|j@)', '[мm]'.$s.'[аa@оo0]'.$s.'[нn]'.$s.'[дd]', '[дd]'.$s.'[rpр]'.$s.'[аa@оo0]'.$s.'(?:[ч4]|ch|сh)', '[хxh]'.$s.'[уyuеe]'.$s.'(?:[ийijрprеёeяюлl]|ja|jа|ju|jи)', '[зz3]'.$s.'[аa@]'.$s.'[лl]'.$s.'[уyu]'.$s.'[пp]', '[гg]'.$s.'[аa@оo0]'.$s.'[нn]'.$s.'[дd]'.$s.'[оo0]', '[пp]'.$s.'[иiеe]'.$s.'[дd]'.$s.'[аa@оo0иiрpr]'.$s.'[^гgфf]', '[жg]'.$s.'[оo0]'.$s.'[пp]', '[чhс4]'.$s.'[лl]'.$s.'[еe]', '[cсs]'.$s.'[уyu]'.$s.'[к4чk]'.$s.'[аиуuyiak]', '[бb]'.$s.'[лL]'.$s.'[яеey]', ); foreach($ArrayPattern as $key => $value) { $Pattern[] = '/(.*?)(?:[^\s]*' . $value . '[^\s]*)(.*?)/is'; } $no_mat = preg_replace($Pattern , "\\1". $cenzur . "\\2", $str); return $no_mat; } $massage = antimat($message); Если находит матерное слово,то бирёт весь текст и каждое слово заменяет на "РОМАШКУ",а в базе: <font <font <font <font <font color='red'>"РОМАШКА"<font> и т.д.... Нуждаюсь в помощи! П.С. Или,на крайний вариант,может кто своим скриптом поделится,ссылку даст,а то гугл ничего нормального выдавать не хочет!
Код (Text): $cenzur = '<font color=\"red\">\"РОМАШКА\"</font>'; font закрывать надо. и зачем там слэши? Код (Text): $cenzur = '<font color="red">"РОМАШКА"</font>';
написал 4 слова-одно из них в тексте матерное. В базу занесено: Код (Text): <font <font <font <font <font <font <font <font <font color="red">"РОМАШКА"</font> <font <font <font <font <font <font <font <font <font color="red">"РОМАШКА"</font> Я пробовал уже как Вы говорите-ничего не получается... Попробовал сделать так: Код (Text): static $ArrayPattern = null; if (!$ArrayPattern) { $ArrayPattern = array(... -подсказали тут на одном форуме-ничего не получилось-функция вроде перестала копировать <font постоянно,но теперь все слова,которые до мата были просто отсекаются,а которые потом есть (включая матерное) превращаются в "РОМАШКУ"... Короче,на трёх форумах пытаюсь добиться помощи-ни у кого не получается...
странно... у меня работает нормально. замени return $no_mat; на echo $no_mat; и посмотри что получится
Вот и мне странно-потому,что на другом сайте (только не в коменах,а в чате) применял и всё нормально пашет...бред... Уже два дня как голову ломаю! Вот что выдало: Код (Text): "РОМАШКА" "РОМАШКА" "РОМАШКА" Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\classicorange\test_massage.php:139) in Z:\home\localhost\www\classicorange\test_massage.php on line 162 Посоветовали вставить "/uis"...и-и-и-и-и-и ВСЁ РАБОТАЕТ!!! Спасибо большое за внимание!!!