[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как сделать исключения?
DimaRRR
Есть скрипт анти-мата:
<?
$slovar = 'мат1|мат2|мат3';
if($_POST['text'] == ''){
echo 'Текст еще не был отправлен.';
}
if(preg_match('#('.$slovar.')#iu', $_POST['text'])){
echo 'Мат был обнаружен и заблокирован.';
}else{
echo $_POST['text'];
}
?>

Надо для этого скрипта сделать исключения, я не знаю как. Кто может помочь?
Игорь_Vasinsky
о каких исключениях идёт речь, поясни на пальцах.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
DimaRRR
Цитата (Игорь_Vasinsky @ 28.05.2014 - 21:00)
о каких исключениях идёт речь, поясни на пальцах.

Например если в мат добавить 'иб', то слово спасибо будет запрещено, надо блокировать все слова кроме спасибо, это и будут исключения
bestxp
А что ты будешь делать со словами

Подстрахуй, отсебятина ?)) мата нет, но твой фильтр такими темпами скажет что есть xD
Winston
Фильтр мата это все - бред. Т.к. обойти его можно без проблем.

Можно указать границу слова
preg_match('#\b('.$slovar.')\b#iu', $_POST['text'])
waldicom
Цитата (bestxp @ 28.05.2014 - 20:31)
А что ты будешь делать со словами

Подстрахуй, отсебятина ?)) мата нет, но твой фильтр такими темпами скажет что есть xD

Так человек и спрашивает про такие исключения.
Автору топика: тупо составить массив с такими словами и проверять с помощью in_array()

_____________
Свои мозги еще никто не отменял.
Телепатов нету.
twin
waldicom
Сразу видно, давно в России небыл :D

Какой массив, сдурел... Словарь русского мата насчитывает охулиард слв. Кстати, как с этим бороться? С охулиардм, как со словом :D Могу подсказать.

Могу регулярку дать, но она по сути бестолковая. Но может пригодится:
    function antiMat($text)
{

$pattern = "/\w{0,5}[хx]([хx\s\!@#\$%\^&*+-\|\/]{0,6})[уy]([уy\s\!@#\$%\^&*+-\|\/]{0,6})[ёiлeеюийя]\w{0,7}|\w{0,6}[пp]([пp\s\!@#\$%\^&*+-\|\/]{0,6})[iие]([iие\s\!@#\$%\^&*+-\|\/]{0,6})[3зс]([3зс\s\!@#\$%\^&*+-\|\/]{0,6})[дd]\w{0,10}|[сcs][уy]([уy\!@#\$%\^&*+-\|\/]{0,6})[4чkк]\w{1,3}|\w{0,4}[bб]([bб\s\!@#\$%\^&*+-\|\/]{0,6})[lл]([lл\s\!@#\$%\^&*+-\|\/]{0,6})[yя]\w{0,10}|\w{0,8}[её][bб][лске@eыиаa][наи@йвл]\w{0,8}|\w{0,4}[еe]([еe\s\!@#\$%\^&*+-\|\/]{0,6})[бb]([бb\s\!@#\$%\^&*+-\|\/]{0,6})[uу]([uу\s\!@#\$%\^&*+-\|\/]{0,6})[н4ч]\w{0,4}|\w{0,4}[еeё]([еeё\s\!@#\$%\^&*+-\|\/]{0,6})[бb]([бb\s\!@#\$%\^&*+-\|\/]{0,6})[нn]([нn\s\!@#\$%\^&*+-\|\/]{0,6})[уy]\w{0,4}|\w{0,4}[еe]([еe\s\!@#\$%\^&*+-\|\/]{0,6})[бb]([бb\s\!@#\$%\^&*+-\|\/]{0,6})[оoаa@]([оoаa@\s\!@#\$%\^&*+-\|\/]{0,6})[тnнt]\w{0,4}|\w{0,10}[ё]([ё\!@#\$%\^&*+-\|\/]{0,6})[б]\w{0,6}|\w{0,4}[pп]([pп\s\!@#\$%\^&*+-\|\/]{0,6})[иeеi]([иeеi\s\!@#\$%\^&*+-\|\/]{0,6})[дd]([дd\s\!@#\$%\^&*+-\|\/]{0,6})[oоаa@еeиi]([oоаa@еeиi\s\!@#\$%\^&*+-\|\/]{0,6})[рr]\w{0,12}/iu";

preg_match_all($pattern, $text, $out);
return str_ireplace($out[0], '', $text);
}

echo antiMat('Вариантов охулиард, всех не разберешь. Допустим бляха чем навредила?');



_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.