Может тема есть. Но я не нашел конкретно, что мне нужно. Как данные введенные пользователем отфильтровать (убрать определенные слова) Идея такая: все что нужно отфильтровать вводится в текстовый файл, потом считывается в массив и выполняется поиск каждого из членов массива в тексте. По-моему сложновато...
Может проще сразу сделать php ный файл с массивом и просто его инклюдить? Зачем каждый раз текстовый файл разбирать? P.S. А вообще ИМХО вещь эта определенно обречена на провал. Слишком уж много существует матерных слов и слишком много вариантов их написания A в чем сложность? Массив в str_replace запихнуть? PHP: <?php $vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U"); $onlyconsonants = str_replace($vowels, "", "Hello World of PHP"); ?>
Ну хотябы убрать основное: типа порноспама, наиболее распространенные ругательства, и конечно же [a href="javascript:..........
Просто думал, что есть проще варианты. ---------------------------- А вообще-о мне хотелось не просто поменять ненужные слова, а вообще запретить добавлане такой записи.
PHP: <?php function is_mat($str) { return preg_match('/(?:wodr1|word2|word3)/i', $str); } ?> Проблема в том, что регистр учитывается. флаг "i" установлен.... _____________________________________________________________________ ДЛя латиницы все работает, для кириллицы -- ни в какую. Даже preg_match('/(абвг|latname)/i', strtolower($str)); учитывает регистр. Как не пойму. setlocale(LC_ALL, "ru_RU.utf8","et_EE.utf8"); ни к чему не привели. echo strtolower ("рврГНГШНоорвсгГНГШлло"); работает как и нужно.
Неужели никто ничего сказать не может по этому поводу? PHP: <?php echo strtolower('БЛА-Бла-бЛа'); //тут все оК! echo strtolower($_POST['var']); //пишет какую-то чепуху echo $_POST['var']; //Норма! ?>
return preg_match('/(?:wodr1|word2|word3)/i', $str); Как можно заменить на mb функции?? А split можно использовать с utf-8? на локали работает..... Но где гарантии, что не будет проблем при выгрузке на сервер.