/********************************************/
/*Welcome to Anti Mate PHP Class source-code!*/
/*The Anti Mate PHP Class and its functions, contexture are copyrighted by s1ayer [www.spg.arbse.net]*/
/*Current file: anti_mate.php*/
/*Optimized for PHP 4.3.6, Apache 1.3.27*/
/********************************************/
setlocale (LC_ALL, 'ru_RU.utf8');
/*<=====================Describing anti_mate class==============================>*/
class anti_mate {
//latin equivalents for russian letters
var $let_matches = array (
'a' => 'а',
'c' => 'с',
'e' => 'е',
'k' => 'к',
'm' => 'м',
'o' => 'о',
'x' => 'х',
'y' => 'у',
'ё' => 'е'
);
//bad words array. Regexp's symbols are readable !
var $bad_words = array ('.*ху(й|и|я|е|л(и|е)).*', '.*пизд.*', 'бл(я|т|д).*', '(с|сц)ук(а|о|и).*',
'еб.*', '.*уеб.*', '.*пид(о|е)р.*',
'.*хер.*'
);
//if script will find bad word, it replace word to package of symbols below
var $rand_sym = array ('#', '@', '&', '*');
//var $bad_by_comers = array('6ля', '6лядь', '6лять', 'взъeб', 'e6aль', 'ebal', 'eblan', 'eбaл', 'eбaть', 'eбyч', 'eбать', 'eбёт', 'eблантий', 'xyёв', 'xyй', 'xyя', 'xуе', 'xуй', 'xую', 'zaeb', 'zaebal', 'zaebali', 'zaebat', 'архипиздрит', 'ахуел', 'ахуеть', 'бля', 'блябу', 'блябуду', 'бляд', 'бляди', 'блядина', 'блядище', 'блядки', 'блядовать', 'блядство', 'блядун', 'блядуны', 'блядунья', 'блядь', 'блядюга', 'блять', 'вафел', 'вафлёр', 'взъебка', 'взьебка', 'взьебывать', 'въеб', 'въебался', 'въебенн', 'въебусь', 'въебывать', 'выблядок', 'выблядыш', 'выеб', 'выебать', 'выебен', 'выебнулся', 'выебон', 'выебываться', 'доебываться', 'долбоеб', 'долбоёб', 'е6ал', 'е6ут', 'еб твою мать', 'ёб твою мать', 'ёбaн', 'ебaть', 'ебyч', 'ебал', 'ебало', 'ебальник', 'ебан', 'ебанамать', 'ебанат', 'ебаная', 'ёбаная', 'ебанический', 'ебанный', 'ебанныйврот', 'ебаныйврот', 'ебаное', 'ебануть', 'ебануться', 'ёбаную', 'ебаный', 'ебанько', 'ебарь', 'ебат', 'ёбат', 'ебатория', 'ебать', 'ебать-копать', 'ебаться', 'ебашить', 'ебёна', 'ебет', 'ебёт', 'ебец', 'ебик', 'ебин', 'ебись', 'ебическая', 'ебки', 'ебла', 'еблан', 'ебливый', 'еблище', 'ебло', 'еблысть', 'ебля', 'ёбн', 'ебнуть', 'ебнуться', 'ебня', 'ебошить', 'ебская', 'ебский', 'ебтвоюмать', 'ебун', 'ебут', 'ебуч', 'ебуче', 'ебучее', 'ебучий', 'ебучим', 'ебущ', 'ебырь', 'елда', 'елдак', 'елдачить', 'заговнять', 'задрачивать', 'задристать', 'задрота', 'зае6', 'заё6', 'заеб', 'заёб', 'заеба', 'заебал', 'заебанец', 'заебастая', 'заебастый', 'заебать', 'заебаться', 'заебашить', 'заебистое', 'заёбистое', 'заебистые', 'заёбистые', 'заебистый', 'заёбистый', 'заебись', 'заебошить', 'заебываться', 'запиздячить', 'захуячить', 'заябестая', 'злоеб', 'злоебучая', 'злоебучее', 'злоебучий', 'ибанамат', 'ибонех', 'изговнять', 'изговняться', 'изъебнуться', 'ипать', 'ипаться', 'ипаццо', 'манда', 'мандавошки', 'мандей', 'мандень', 'мандеть', 'мандища', 'мандой', 'манду', 'мандюк', 'млять', 'мудоеб', 'мудоклюй', 'на хуй', 'наебать', 'наебет', 'наебнуть', 'наебнуться', 'наебывать', 'напиздел', 'напиздели', 'напиздело', 'напиздили', 'настопиздить', 'нахуй', 'нахер', 'нахуйник', 'не ебет', 'не ебёт', 'невротебучий', 'невъебенно', 'нехуй', 'нехуйственно', 'ниибацо', 'ниипацца', 'ниипаццо', 'ниипет', 'никуя', 'нихера', 'нихуя', 'объебос', 'обьебать', 'обьебос', 'однохуйственно', 'опездал', 'опизде', 'опизденивающе', 'остоебенить', 'остопиздеть', 'отмудохать', 'отпиздить', 'отпиздячить', 'отъебись', 'охуевательский', 'охуевать', 'охуевающий', 'охуел', 'охуенно', 'охуеньчик', 'охуеть', 'охуительно', 'охуительный', 'охуяньчик', 'охуячивать', 'охуячить', 'пездень', 'пездит', 'пездишь', 'пездо', 'пездят', 'переёбок', 'пи3д', 'пи3де', 'пи3ду', 'пиzдец', 'пидар', 'пидарaс', 'пидарас', 'пидарасы', 'пидары', 'пидор', 'пидорасы', 'пидорка', 'пидорок', 'пидоры', 'пидрас', 'пизда', 'пиздануть', 'пиздануться', 'пиздарваньчик', 'пиздато', 'пиздатое', 'пиздатый', 'пизденка', 'пизденыш', 'пиздёныш', 'пиздеть', 'пиздец', 'пиздит', 'пиздить', 'пиздиться', 'пиздишь', 'пиздища', 'пиздище', 'пиздобол', 'пиздоболы', 'пиздобратия', 'пиздоватая', 'пиздоватый', 'пиздолиз', 'пиздонутые', 'пиздорванец', 'пиздорванка', 'пиздострадатель', 'пизду', 'пиздуй', 'пиздун', 'пиздунья', 'пизды', 'пиздюга', 'пиздюк', 'пиздюлина', 'пиздюля', 'пиздят', 'пиздячить', 'по хуй', 'по хую', 'подъебнуть', 'подъебнуться', 'поебать', 'поебень', 'поёбываает', 'потаскушка', 'похер', 'похерил', 'похерила', 'похерили', 'похеру', 'похуй', 'похуист', 'похуистка', 'похую', 'приебаться', 'припиздень', 'припизднутый', 'припиздюлина', 'проблядь', 'проеб', 'проебанка', 'проебать', 'промандеть', 'промудеть', 'пропизделся', 'пропиздеть', 'пропиздячить', 'раздолбай', 'разхуячить', 'разъеб', 'разъеба', 'разъебай', 'разъебать', 'распиздай', 'распиздеться', 'распиздяй', 'распиздяйство', 'спиздел', 'спиздеть', 'спиздил', 'спиздила', 'спиздили', 'спиздит', 'спиздить', 'уебать', 'уёбища', 'уебище', 'уёбище', 'уебищное', 'уёбищное', 'уебк', 'уебки', 'уёбки', 'уебок', 'уёбок', 'х_у_я_р_а', 'хyё', 'хyй', 'хyйня', 'хамло', 'хер', 'херня', 'херовато', 'херовина', 'херовый', 'хер', 'хитровыебанный', 'хитрожопый', 'хуeм', 'хуе', 'хуё', 'хуевато', 'хуёвенький', 'хуевина', 'хуево', 'хуевый', 'хуёвый', 'хуек', 'хуёк', 'хуел', 'хуем', 'хуенч', 'хуеныш', 'хуенький', 'хуеплет', 'хуеплёт', 'хуепромышленник', 'хуерик', 'хуерыло', 'хуесос', 'хуесоска', 'хуета', 'хуетень', 'хуею', 'хуи', 'хуй', 'хуйком', 'хуйло', 'хуйня', 'хуйрик', 'хуище', 'хуля', 'хую', 'хуюл', 'хуя', 'хуяк', 'хуякать', 'хуякнуть', 'хуяра', 'хуясе', 'хуячить');
var $bad_by_comers = array('ебнулся','уёбищнее', 'уёбищные','пизди','ебнутые','пиздэйшн','опиздюлиться','уебища','ебеныть','уёбский', 'мудацкой', 'полупидоров', 'ёбаный', 'ебашит', 'пидорастическ', 'хуле', 'блдь', 'ебть', 'пидерси', 'пидорасов', 'уебищные', 'пидорскую', 'пизденек', 'пиздой', 'пидора', 'пидором', 'ебошитъ', 'запиздячили', 'блядь', '6ля', '6лядь', '6лять', 'бля', 'блябу', 'блябуду', 'бляд', 'бляди', 'блядина', 'блядище', 'блядки', 'блядовать', 'блядство', 'блядун', 'блядуны', 'блядунья', 'блядь', 'выблядок', 'выблядыш', 'блядюга', 'блять', 'проблядь', 'ебаться', 'взъебка', 'взьебка', 'взьебывать', 'въеб', 'въебался', 'въебенн', 'въебусь', 'въебывать', 'выеб', 'выебать', 'выебен', 'выебнулся', 'выебон', 'выебываться', 'доебываться', 'долбоеб', 'долбоёб', 'е6ал', 'е6ут', 'ебтвоюмать', 'ёбтвоюмать', 'ёбaн', 'ебaть', 'ебyч', 'ебал', 'ебало', 'ебальник', 'ебан', 'ебанамать', 'ебанат', 'ебаная', 'ёбаная', 'ебанический', 'ебанный', 'ебанныйврот', 'ебаныйврот', 'ебаное', 'ебануть', 'ебануться', 'ёбаную', 'ебаный', 'ебанько', 'ебарь', 'ебат', 'ёбат', 'ебатория', 'ебать', 'ебать-копать', 'ебаться', 'ебашить', 'ебёна', 'ебет', 'ебёт', 'ебец', 'ебик', 'ебин', 'ебись', 'ебическая', 'ебки', 'ебла', 'еблан', 'ебливый', 'еблище', 'ебло', 'еблысть', 'ебля', 'ёбн', 'ебнуть', 'ебнуться', 'ебнутся', 'ебня', 'ебошить', 'ебская', 'ебский', 'ебтвоюмать', 'ебун', 'ебут', 'ебуч', 'ебуче', 'ебучее', 'ебучий', 'ебучим', 'ебущ', 'ебырь', 'зае6', 'заё6', 'заеб', 'заёб', 'заеба', 'заебал', 'заебала', 'заебала', 'заебанец', 'заебастая', 'заебастый', 'заебать', 'заебаться', 'заебашить', 'заебистое', 'заёбистое', 'заебистые', 'заёбистые', 'заебистый', 'заёбистый', 'заебись', 'заебошить', 'заебываться', 'заябестая', 'злоеб', 'злоебучая', 'злоебучее', 'злоебучий', 'ибанамат', 'изъебнуться', 'ипать', 'ипаться', 'ипаццо', 'наебать', 'наебет', 'наебнуть', 'наебнуться', 'наебывать', 'неебет', 'неебёт', 'невротебучий', 'невъебенно', 'ниибацо', 'ниипацца', 'ниипаццо', 'ниипет', 'объебос', 'обьебать', 'обьебос', 'остоебенить', 'отъебись', 'поебать', 'поебень', 'поёбываает', 'подъебнуть', 'подъебнуться', 'приебаться', 'разъеб', 'разъеба', 'разъебай', 'разъебать', 'уебать', 'уёбища', 'уебище', 'уёбище', 'уебищное', 'уёбищное', 'уебк', 'уебки', 'уёбки', 'уебок', 'уёбок', 'взъeб', 'e6aль', 'ebal', 'eblan', 'eбaл', 'eбaть', 'eбyч', 'eбать', 'eбёт', 'eблантий', 'zaeb', 'zaebal', 'zaebali', 'zaebat', 'проеб', 'проебанка', 'проебать', 'пизда', 'пездень', 'пездит', 'пездишь', 'пездо', 'пездят', 'переёбок', 'пи3д', 'пи3де', 'пи3ду', 'пиzдец', 'пизда', 'пиздануть', 'пиздануться', 'пиздарваньчик', 'пиздато', 'пиздатое', 'пиздатый', 'пизденка', 'пизденыш', 'пиздёныш', 'пиздеть', 'пиздец', 'пиздит', 'пиздить', 'пиздиться', 'пиздишь', 'пиздища', 'пиздище', 'пиздобол', 'пиздоболы', 'пиздобратия', 'пиздоватая', 'пиздоватый', 'пиздолиз', 'пиздонутые', 'пиздорванец', 'пиздорванка', 'пиздострадатель', 'пизду', 'пиздуй', 'пиздун', 'пиздунья', 'пизды', 'пиздюга', 'пиздюк', 'пиздюлина', 'пиздюля', 'пиздят', 'пиздячить', 'припиздень', 'припизднутый', 'припиздюлина', 'пропизделся', 'пропиздеть', 'пропиздячить', 'распиздай', 'распиздеться', 'распиздяй', 'распиздяйство', 'спиздел', 'спиздеть', 'спиздил', 'спиздила', 'спиздили', 'спиздит', 'спиздить', 'запиздячить', 'опездал', 'опизде', 'опизденивающе', 'напиздел', 'напиздели', 'напиздело', 'напиздили', 'настопиздить', 'остопиздеть', 'отпиздить', 'отпиздячить', 'хуй', 'х_у_я_р_а', 'хyё', 'хyй', 'хyйня', 'хамло', 'хитровыебанный', 'хуeм', 'хуе', 'хуё', 'хуевато', 'хуёвенький', 'хуевина', 'хуево', 'хуевый', 'хуёвый', 'хуек', 'хуёк', 'хуел', 'хуем', 'хуенч', 'хуеныш', 'хуенький', 'хуеплет', 'хуеплёт', 'хуепромышленник', 'хуерик', 'хуерыло', 'хуесос', 'хуесоска', 'хуета', 'хуетень', 'хуею', 'хуи', 'хуй', 'хуйком', 'хуйло', 'хуйня', 'хуйрик', 'хуище', 'хуля', 'хую', 'хуюл', 'хуя', 'хуяк', 'хуякать', 'хуякнуть', 'хуяра', 'хуясе', 'хуячить', 'xyёв', 'xyй', 'xyя', 'xуе', 'xуй', 'xую', 'захуячить', 'нахуй', 'нахуй', 'нахуйник', 'однохуйственно', 'нехуй', 'нехуйственно', 'охуевательский', 'охуевать', 'охуевающий', 'охуел', 'охуенно', 'охуеньчик', 'охуеть', 'охуительно', 'охуительный', 'охуяньчик', 'охуячивать', 'охуячить', 'похуй', 'похуист', 'похуистка', 'похую', 'похуй', 'похую', 'разхуячитьахуел', 'ахуеть', 'ибонех', 'нихуя');
function rand_replace (){
for ($i=0; $i<5; $i++)
@$output .= $this->rand_sym[rand(0,count($this->rand_sym)-1)];
return '<цензура>';
return $output;
}
function filter ($string, $mask = false){
// foreach ($this->bad_by_comers as &$word) {
// $word = mb_strtolower($word, 'utf8');
// }
//
// $string = mb_strtolower($string, 'utf8');
$counter = 0;
$elems = explode (' ', $string); //here we explode string to words
$count_elems = count($elems);
for ($i=0; $i<$count_elems; $i++)
{
$blocked = 0;
/*formating word...*/
$str_rep = preg_replace('#[^a-zA-Zа-яА-Яё]#u', '', mb_strtolower($elems[$i], 'utf8'));
$str_rep = mb_strtolower(str_replace(array_keys($this->let_matches), array_values($this->let_matches), $str_rep),'utf8');
/*done*/
/*here we are trying to find bad word*/
/*match in the special array*/
$bad_count = count($this->bad_words);
for ($k=0; $k<$bad_count; $k++)
{
if (preg_match('#\*$#', $this->bad_words[$k]))
{
if (preg_match('#^'.$this->bad_words[$k].'#', $str_rep))
{
if ($mask === false) {
$elems[$i] = $this->rand_replace();
} elseif ($mask == 'funny') {
$elems[$i] = '___';
} else {
if (!in_array(print_r($elems[$i], true), array('хулигана','хулигана. 2.', 'эпидермис.','эпидермиса', 'херцога','херцог','херцог и','херцог', 'парикмахеров', 'фантазиях', 'потеху', 'блямбу,', 'парикмахерской', 'херши'))) {
$elems[$i] = ''.print_r($elems[$i], true).'';
}
}
$blocked = 1;
$counter++;
break;
}
}
if ($str_rep == $this->bad_words[$k]){
if ($mask === false) {
$elems[$i] = $this->rand_replace();
} elseif ($mask == 'funny') {
$elems[$i] = '___';
} else {
$elems[$i] = ''.print_r($elems[$i], true).'';
}
$blocked = 1;
$counter++;
break;
}
}
}
if ($counter != 0)
$string = implode (' ', $elems); //here we implode words in the whole string
$func = function($str) {
return''.$str.'';
};
$func_fun = function($str) {
return '___';
};
if ($mask === false) {
$string = str_replace($this->bad_by_comers, '<цензура>', $string);
} elseif ($mask == 'funny') {
$replaces = array_map($func_fun, $this->bad_by_comers);
$string = str_replace($this->bad_by_comers, $replaces, $string);
}
else {
$replaces = array_map($func, $this->bad_by_comers);
$string = str_replace($this->bad_by_comers, $replaces, $string);
}
$string = str_replace('/global/', '/Global/', $string);
return $string;
}
}
/*<===================================END=======================================>*/
?>