Скрипты транслитерации на PHP

zarus

Хитрожопый макак
Скрипты транслитерации на PHP

Собственно, обратился к Яндексу, и нашел то, что мне нужно. Этого достаточно, но вот скорость на больших объемах катастрофически падает.
А вообще, есть у кого подобные быблиотеки? Или хотя бы ссылки на что-то работающее быстрее?
PHP:
  function translit($cyr_str) {
   $tr =  array("Ґ"=>"G","Ё"=>"YO","Є"=>"E","Ї"=>"YI","І"=>"I",             
 
"і"=>"i","ґ"=>"g","ё"=>"yo","№"=>"N","є"=>"e",              
 "ї"=>"yi","А"=>"A","Б"=>"B","В"=>"V","Г"=>"G",              
 "Д"=>"D","Е"=>"E","Ж"=>"ZH","З"=>"Z","И"=>"I",              
 "Й"=>"Y","К"=>"K","Л"=>"L","М"=>"M","Н"=>"N",              
 "О"=>"O","П"=>"P","Р"=>"R","С"=>"S","Т"=>"T",              
 "У"=>"U","Ф"=>"F","Х"=>"H","Ц"=>"TS","Ч"=>"CH",              
 "Ш"=>"SH","Щ"=>"SCH","Ъ"=>"'","Ы"=>"YI","Ь"=>"",              
 "Э"=>"E","Ю"=>"YU","Я"=>"YA","а"=>"a","б"=>"b",              
 "в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"zh",              
 "з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l",              
 "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",              
 "с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",              
 "ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"'",              
 "ы"=>"yi","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya"              
 );
    return strtr($cyr_str,$tr);
  }
 

SiMM

Новичок
Читать/писать блоками с посимвольным обходом строки без всяких strtr (что-то вроде
PHP:
fwrite($fw,$table[$in{$i}]);
)
 

zarus

Хитрожопый макак
Ну такой подход и ежу понятен, но я думал, может, есть более продвинутая библиотека. Спасибо.
з.ы. В общем, подожду, может, кто чего еще предложит/придумает интересного.
з.з.ы. И немножко не в тему. Как можно "подключить" к сайту он-лайн переводчик? Например, как это сделано с Гуглем.
 

Danilevsky

Новичок
zarus,
> А он умеет правильно транслировать русские буквы - ш,щ,ц,я?
А помоему нет единого (правильного) стандарта транслитерации. У каждого свой.
 

SiMM

Новичок
> А он умеет правильно транслировать русские буквы - ш,щ,ц,я?
Возьми да проверь, сравнив результат с твоим пониманием "правильности".
 
Сверху