<?php
/**
*
*Транслит
*автор: nc_soft
*25.08.07
*
Функция предусматривает обработку текста как с транслитерацией, так и без, в качестве управляющего символа выбран ~
*/
echo transl('yeto tekst tranlitom ~yeto beZ izmenenij');
function transl($string) {
//проверка отсутствия русских букв
if (preg_match("/[А-Яа-яЁё]+/su",$string))
{
return $string;
}
if ($string[0]=='~')
return substr($string,1);
$tran = array(
"A"=>"А",
"a"=>"а",
"B"=>"Б",
"b"=>"б",
"V"=>"В",
"v"=>"в",
"G"=>"Г",
"g"=>"г",
"D"=>"Д",
"d"=>"д",
"E"=>"Е",
"e"=>"е",
"Zh"=>"Ж",
"ZH"=>"Ж",
"zh"=>"ж",
"Z"=>"З",
"z"=>"з",
"I"=>"И",
"i"=>"и",
"J"=>"Й",
"j"=>"й",
"K"=>"К",
"k"=>"к",
"L"=>"Л",
"l"=>"л",
"M"=>"М",
"m"=>"м",
"N"=>"Н",
"n"=>"н",
"O"=>"О",
"o"=>"о",
"P"=>"П",
"p"=>"п",
"R"=>"Р",
"r"=>"р",
"S"=>"С",
"s"=>"с",
"T"=>"Т",
"t"=>"т",
"U"=>"У",
"u"=>"у",
"F"=>"Ф",
"f"=>"ф",
"H"=>"Х",
"h"=>"х",
"X"=>"Х",
"x"=>"х",
"C"=>"Ц",
"c"=>"ц",
"Ts"=>"Ц",
"ts"=>"ц",
"Ch"=>"Ч",
"ch"=>"ч",
"Sh"=>"Ш",
"SH"=>"Ш",
"sh"=>"ш",
"Sch"=>"Щ",
"SCH"=>"Щ",
"sch"=>"щ",
"''"=>"ъ",
"Y"=>"Ы",
"y"=>"ы",
"'"=>"ь",
"Ye"=>"Э",
"YE"=>"Э",
"ye"=>"э",
"Yu"=>"Ю",
"yu"=>"ю",
"Ya"=>"Я",
"ya"=>"я",
"YU"=>"Ю",
"YA"=>"Я",
"Yo"=>"ё",
"YO"=>"Ё",
"W"=>"Ш",
"w"=>"ш",
'q'=>'ь'
);
$tran1= array(
'нэ '=>'ные ',
'нэ'=>'ные'
);
if (preg_match("/\~+/su",$string))
{
$pos=strpos($string,"~");
$str=substr($string,0,$pos);
$str=latrus($str,$tran,$tran1);
$tok=strtok($string,"~");
$k=3;
while ($tok=strtok("~"))
{
if ($k%2==0)
{
$str.=latrus($tok,$tran,$tran1);
$k++;
}
else {
$str.=$tok;
$k++;
}
}
}
else
{
return latrus($string,$tran,$tran1);
}
return $str;
}
function latrus($str,$tran,$tran1)
{
$str=strtr($str,$tran);
$str=str_replace("_"," ",$str);
return strtr($str,$tran1);
}
?>