[off] Система антимат.

Yo!

Новичок
Re: [off] Система антимат.

WP
Отправил в pm слова которые не фильтрует...
 

Splurov

Новичок
Может чем-нибудь поможет:
Код:
// http://community.livejournal.com/ru_mirandaim/376539.html
preg_match_all('/
	(
		(?:\s+|^)(?:[пПnрРp]?[3ЗзВBвПnпрРpPАaAаОoO0о]?[сСcCиИuUОoO0оАaAаыЫуУyтТT]?|\w*[оаАaAО0oO])[Ппn][иИuUeEеЕ][зЗ3][ДдDd]\w*[\?\,\.\!\;\-]*
	|
		(?:\s+|^)\w{0,4}[оОoO0иИuUаАaAcCсСзЗ3тТTуУy]?[XxХх][уУy][йЙеЕeёЁEeяЯ9юЮиИuU]\w*[\?\,\.\;\-\!]*
	|
		(?:\s+|^)[бпПnБ6][лЛ][яЯ9]+(?:[дтДТDT]\w*)?[\?\,\.\;\!\-]*
	|
		(?:\s+|^)\w*[бпПnБ6][лЛ][яЯ9][дтДТDT]\w+[\?\,\.\;\-\!]*
	|
		(?:\s+|^)(?:\w*[оОoO0ъЪьыЫЬаАaAзЗ3уУyеЕe])?[еЕeEиИuUёЁ][бБ6пП](?:[оОoO0ыЫаАaAнНHиИuUуУyлЛеЕeкКkKE]\w*)?[\?\,\!\.\;\-]*
	|
		(?:\s*|^)?[ШшЩщ][лЛ][юЮ][хХxX]?[шШщЩ]?[кКkK]?\w*[\?\,\!\.\;\-]*
	|
		(?:\s*|^)?[сСcC][цЦ]?[уyУ]+[чЧ]?[КkKк]*\w*[\?\,\!\.\;\-]*
	|
		(?:\s*|^)?[пПn][uUИи][Дд][aAАаоОoO0][Рpр]\w*[\?\,\!\.\;\-]*
	|
		(?:\s*|^)?[гГ][ОoOоаАaA][НHн][Дд][oOО0о][нНH]\w*[\?\,\!\.\;\-]*
	|
		(?:\s*|^)?\w*[3Зз][аАaAоОoO0][лK][уyУ][пПn]\w*[\?\,\!\.\;\-]*
	)
/x', $string, $match);
 

aNeo

Новичок
Изъеденая временем тема, но всеже.
Та же проблема, тот же мат, и никакого более менее рабочего способа в инете не нашел.
Пришлось самому. В первых словах скажу, я не буду искать фразы типа )(уй или з@/\уп и тому подобные. Почему? Да потому что их физически нельзя отфильтровать, так как их количество зависит от фантазии пользователей, и главное, такие символосочетания МАТОМ НЕ ЯВЛЯЮТСЯ по закону. Не стоит тратить на них время и ресурсы сервера.
Перебирая слова-маты (а их очень много) решил реализовать поиск по корням, вывел корни основных матов и состряпал небольшую функцию.
Скажу сразу, она не идеальна, но 95% мата отсеивает на стадии добавления. Имеются логи, их периодически просматриваю на предмет ложных срабатываний, вроде отсекает только мат.
Может кто и поможет доработать такой вариант антимата.
P.S. Не уверен, но за пример корней мата, меня скорее всего забанят. очень жаль. =(

PHP:
function antimat($text){

   $mat= "/[COLOR=silver](бляд|*блять|баеб|боеб|выеба|отъеба|*ебать|заебать|*ебал|*ебаш|выебал|заебал|*ебан|*ебаш|переебаш|ебло|ебун|ебуч|ебосос|задрот|заеб|залуп|защекан|недоебок|недоёбок|отсоси|педрила|пизд|пидар|пидор|уеб|ахуе|охуе|*хуе|хуи|*хуй|нехуй|нахуй|похуй|захуй|членосос)[/COLOR]/i";
   $newmat= array('а'=>'[аa]','е'=>'[еeё]','з'=>'[з3]','о'=>'[оo]','р'=>'[рp]','с'=>'[сc]','у'=>'[уy]','х'=>'[хx]','*'=>'\b');
   $mat= strtr($mat, $newmat);

   RETURN preg_match( $mat, $text );
}

$comment= 'Куча мата и т. д.';

if( antimat($comment) )
//обнаружен мат, сообщение
else
//запись комментария в базу
 

Rin

*
censure() -- Функция пытается определить наличие мата (нецензурных, матерных слов) в html-тексте.
 

Апокалипсис

тех дир matras.ru
+1 к censure, правда немного допилил для своих нужд (ложные срабатывания были, все забываю автору отписать слова).
 

Rin

*
автор здесь, в чём была доработка и какие были ложные срабатывания?
 

Апокалипсис

тех дир matras.ru
Alexandre
я про http://forum.dklab.ru/viewtopic.php?t=17146

Rin
О! так даже проще, сегодня постараюсь скинуть список ложных срабатываний (либа уже 2 года стоит у меня в чате) - есть даже целый список.
 
Сверху