Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > Транслитерация, какая из двух функций быстрей


Автор: Serious2008 11.3.2012, 23:09
Подскажите пожалуйста какая из двух функций быстрей работать будет
Код

function encodestring($st) 
  { 
    // Сначала заменяем "односимвольные" фонемы. 
    $st=strtr($st,"абвгдеёзийклмнопрстуфхъыэ_", 
    "abvgdeeziyklmnoprstufh'iei"); 
    $st=strtr($st,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ_", 
    "ABVGDEEZIYKLMNOPRSTUFH'IEI"); 
    // Затем - "многосимвольные". 
    $st=strtr($st,  
                    array( 
                        "ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh",  
                        "щ"=>"shch","ь"=>"", "ю"=>"yu", "я"=>"ya", 
                        "Ж"=>"ZH", "Ц"=>"TS", "Ч"=>"CH", "Ш"=>"SH",  
                        "Щ"=>"SHCH","Ь"=>"", "Ю"=>"YU", "Я"=>"YA", 
                        "ї"=>"i", "Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye" 
                        ) 
             ); 
              
    // Возвращаем результат. 
    return $st; 
  }


Код


$replace = array ( 

   "Є"=>"YE","І"=>"I","Ѓ"=>"G","і"=>"i","№"=>"#","є"=>"ye",
   "ѓ"=>"g","ї"=>"i","Ї"=>"i", 
   "А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D", 
   "Е"=>"E","Ё"=>"YO","Ж"=>"ZH", 
   "З"=>"Z","И"=>"I","Й"=>"J","К"=>"K","Л"=>"L", 
   "М"=>"M","Н"=>"N","О"=>"O","П"=>"P","Р"=>"R", 
   "С"=>"S","Т"=>"T","У"=>"U","Ф"=>"F","Х"=>"X", 
   "Ц"=>"C","Ч"=>"CH","Ш"=>"SH","Щ"=>"SHH","Ъ"=>"'", 
   "Ы"=>"Y","Ь"=>"","Э"=>"E","Ю"=>"YU","Я"=>"YA", 
   "а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d", 
   "е"=>"e","ё"=>"yo","ж"=>"zh", 
   "з"=>"z","и"=>"i","й"=>"j","к"=>"k","л"=>"l", 
   "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r", 
   "с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"x", 
   "ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"shh","ъ"=>"","Ъ"=>"", 
   "ы"=>"y","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya"
                     ); 
$s = strtr ($s, $replace)

Автор: Evghenusi 12.3.2012, 00:44
иногда str_replace отрабатывает быстрее strtr, подойдёт ли для этих случаев не знаю, надо замерять время.
Цитата(Serious2008 @  11.3.2012,  23:09 Найти цитируемый пост)
Подскажите пожалуйста какая из двух функций быстрей работать будет
замерить слабо? microtime() ?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)