<?php

/* ANTIMAT FUNCTION. Copyright (C) 1998-2008 Konstantin Yeliseyev aka kay27.  */
/*  VERSION 2.2.2, 01.12.2008                                                 */
/* THANX TO: votyak [2], silly-hedgehog, osennjaya.                           */
/* You may use this function for FREE in your non-commercial projects.        */
/* You may NOT change and distribute.                                         */
/* All questions goes to kay27[@]bk.ru                                        */

function antimat($s){
 global $antimat_char, $antimat_xxxchars, $antimat_filter, $antimat_wc,
  $antimat_xxlen, $antimat_maxlen, $antimat_cnt, $antimat_simple;
 $q=''; $r=$s;
 for ($i=0;$i<strlen($s);$i++) $q.=$antimat_char[ord($s[$i])];
 if ($q!='') { 
  $n=strlen($q); $i=0;
  while ($i<$n) {
   while ((($q[$i]<'а')||($q[$i]>'я'))&&($i<$n)) $i++;
   $ff=false;
   $j=$i+1; if ($j<$n) {
    $w=$q[$i]; $lc=$w; $l=1;
    while (($j<$n)&&($l<=$antimat_maxlen)&&(!$ff)) {
     if (($q[$j]>='а')&&($q[$j]<='я')) {
      if ($q[$j]!=$lc) { $lc=$q[$j]; $w.=$lc; $l++; }
      for($z=0;$z<$antimat_cnt;$z++) if ($w==$antimat_filter[$z]) {
       $ff=true;
       if (!$antimat_wc[$z]) if ($j<($n-1)) if (($q[$j+1]>='а')&&($q[$j+1]<='я')) $ff=false;
       if ($ff) break;
      }
     }
     $j++;
    }
    if ($ff) {
     for ($z=$i;$z<$j;$z++) if (($q[$z]>='а')&&($q[$z]<='я'))
      $r[$z]=$antimat_xxxchars[rand(0,$antimat_xxlen)];
     $i=$j;
    }
   }
   if (!$ff) if ($i<$n) while (($q[$i]>='а')&&($q[$i]<='я')&&($i<$n)) $i++;
  }
 }
 $z=str_pad('',$antimat_maxlen,'@');
 $as=explode("\r\n",$antimat_simple);
 foreach ($as as $w) $q=str_replace($w,substr($z,0,strlen($w)),$q);
 for ($i=0;$i<$n;$i++) if ($q[$i]=='@') $r[$i]=$antimat_xxxchars[rand(0,$antimat_xxlen)];
 return $r;
}

$antimat_frc=<<<END
Ёё#@ABCDEHKMNOPRTUWXYabcegikmnoprtuvwxy034689АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ$\<{
END;
$antimat_toc=<<<END
ееиаавсденкмиорятишхуаьседиктпоргтиишхуозчбвдабвгдежзийклмнопрстуфхцчшщъыьэюяслхх
END;
$antimat_xxxchars='*#$%&@';
$antimat_list=<<<END
ахуй*
ахуе*
абля*
безпез*
беспез*
бля
блябля*
бляхуй*
блябу*
блян*
бляс*
бляп*
бляд*
блят*
въеб*
выеб*
выиб*
выип*
вьеб*
далбае*
далбое*
долбаеб*
долбаеп*
долбое*
еб
ебл*
ебн*
ебан*
ебал*
ебат*
ебац*
ебаш*
ебе*
еби*
ебон*
ебош*
ебс*
ебу
ебун*
ебуч*
ебущ*
епст*
епся
жоп*
заеб*
заеп*
заиб*
залуп*
золуп*
захуе*
захуи*
захуя*
ибан
ибану*
иби*
издец*
ипать*
ипацц*
ипи
йоб*
йоп*
малаф*
малоф*
молоф*
муда*
муди*
мудо*
наеб*
нах
нахуя*
нахуй*
невъеб*
непизд*
нехуе*
нехуи*
нехуй*
нехуя*
нихуя*
опезд*
остопизд*
отеб*
отъеб*
отьеб*
отсос*
отпизд*
отху*
охуе*
охуи*
охуя*
педар*
педераст*
педик
педри*
пезд*
перееб*
переиб*
перепез*
перепиз*
перехуе*
перехуя*
периеб*
песд*
пидар*
пидор*
пизд*
поеб*
пох
похуи*
похуй*
похую*
похуя*
пнх
поеб*
попизд*
прихуе*
прихуя*
пробляд*
проблят*
проеб*
пропизд*
разпез*
разпиз*
разхуя*
распез*
распиз*
расхуя*
сука
суки*
сучар*
сучон*
сученк*
сучено*
сучкаеб*
сучкаеп*
сучкаиба*
сучкаипа*
сцук*
себись
схуе*
схуя*
съеб*
сьеб*
убля*
уебал
уебать
уебац*
уебис*
уебищ*
уебк*
уебо*
уеботина
уеботину
уебу
хуе*
хуи*
хуй*
хуле
хули
хую*
хуя*
чмо
ьсука*
яботн*
ябат*
END;
$antimat_simple=<<<END
а сучка
блядс
блядь
блятс
бляхуй
ебищ
нахуй
пидор
пизда
пизде
пизди
пиздо
пизду
пизды
проеб
хуел
END;
unset($antimat_char);
//for ($i=0;$i<256;$i++) if ($i<32) $antimat_char[$i]=''; else $antimat_char[$i]=chr($i);
for ($i=0;$i<256;$i++) $antimat_char[$i]=chr($i);
for ($i=0;$i<strlen($antimat_frc);$i++) $antimat_char[ord($antimat_frc[$i])]=$antimat_toc[$i];
$antimat_xxlen=strlen($antimat_xxxchars)-1;
$a=explode("\n",$antimat_list);
unset($antimat_filter);
unset($antimat_wc);
$antimat_maxlen=0;
$antimat_cnt=0;
foreach($a as $s){
 $p=strpos($s,'*');
 $w=($p!==false);
 if ($w) $m=substr($s,0,$p); else $m=rtrim($s);
 $antimat_wc[]=$w;
 $antimat_filter[]=$m;
 if (strlen($m)>$antimat_maxlen) $antimat_maxlen=strlen($m);
 $antimat_cnt++;
}
?>