<?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); } ?>