/*
Определение, является ли документ русским
true - русский
false - не русский
*/
$win=array(
'для'=>68,'или'=>67,'при'=>66,'что'=>65,'как'=>64,
'это'=>63,'все'=>62,'так'=>61,'чем'=>60,'имя'=>59,
'его'=>58,'без'=>57,'эта'=>56,'нет'=>55,'тип'=>54,
'где'=>53,'под'=>52,'эти'=>51,'вам'=>50,'они'=>49,
'еще'=>48,'эту'=>47,'был'=>46,'уже'=>45,'тем'=>44,
'над'=>43,'кто'=>42,'тех'=>41,'нее'=>40,'не'=>39,
'на'=>38,'по'=>37,'из'=>36,'то'=>35,'вы'=>34,'от'=>33,
'но'=>32,'до'=>31,'мы'=>30,'же'=>29,'за'=>28,'об'=>27,
'во'=>26,'их'=>25,'со'=>24,'он'=>23,'ли'=>22,'ее'=>21,
'бы'=>20,'те'=>19,'ни'=>18,'да'=>17,'им'=>16,'ко'=>15,
'ей'=>14,'та'=>13,'ею'=>12,'ту'=>11,'ах'=>10,'ну'=>9,
'в'=>8,'и'=>7,'с'=>6,'к'=>5,'а'=>4,'о'=>3,'у'=>2,'я'=>1
);
$koi=array(
'дмс'=>68,'ймй'=>67,'ртй'=>66,'юфп'=>65,'лбл'=>64,
'ьфп'=>63,'чуе'=>62,'фбл'=>61,'юен'=>60,'йнс'=>59,
'езп'=>58,'веъ'=>57,'ьфб'=>56,'оеф'=>55,'фйр'=>54,
'зде'=>53,'рпд'=>52,'ьфй'=>51,'чбн'=>50,'пой'=>49,
'еэе'=>48,'ьфх'=>47,'вщм'=>46,'хце'=>45,'фен'=>44,
'обд'=>43,'лфп'=>42,'феи'=>41,'оее'=>40,'ое'=>39,
'об'=>38,'рп'=>37,'йъ'=>36,'фп'=>35,'чщ'=>34,'пф'=>33,
'оп'=>32,'дп'=>31,'нщ'=>30,'це'=>29,'ъб'=>28,'пв'=>27,
'чп'=>26,'йи'=>25,'уп'=>24,'по'=>23,'мй'=>22,'ее'=>21,
'вщ'=>20,'фе'=>19,'ой'=>18,'дб'=>17,'йн'=>16,'лп'=>15,
'ек'=>14,'фб'=>13,'еа'=>12,'фх'=>11,'би'=>10,'ох'=>9,
'ч'=>8,'й'=>7,'у'=>6,'л'=>5,'б'=>4,'п'=>3,'х'=>2,'с'=>1
);
function lang($host,$str) {
Global $win,$koi;
$zone=substr($host,strrpos($host,".")+1);
if ($zone=="ru" || $zone=="su") return true;
$str=preg_replace("/[^\xC0-\xFF\xB8\xA8\x20]/"," "," ".$str." ");
if (preg_match_all("/ ([^\x20]{1,3}) /",$str,$match)) {
$words=array_map("strtolower",$match[1]);
$words=array_count_values($words);
arsort($words);
} else {
return false;
}
unset($match,$str);
$rus=0;
$non=0;
$count=sizeof($words);
while (list($word,$num)=each($words)) {
if (isset($win[$word])) {
$rus+=($win[$word]+$count)*$num;
} elseif (isset($koi[$word])) {
$rus+=($koi[$word]+$count)*$num;
} else {
$non+=$count*$num;
}
}
if ($rus>$non) return true;
return false;
}