Не знаю как вам, други, а мне-таки кажется, что я написал очередную функцию транслитерации на PHP. На этот раз - вроде, с учетом правил, написанных в умной книжке умным дядькой.

Собственно, пользуйтесь =)

  1. public function transliterate(&$wordarr)
  2. {
  3.         $ru_vowels = array( ‘/же/’,  ‘/ше/’,  ‘/че/’,  ‘/ще/’, ‘/ье/’,‘/ъе/’,‘/ьи/’,‘/ъи/’,‘/ъо/’,‘/ьо/’,‘/а/’,‘/е/’, ‘/ё/’ ,‘/и/’,‘/о/’,‘/у/’,‘/ы/’,‘/э/’,‘/ю/’, ‘/я/’,);
  4.         $en_vowels = array( ‘zhe’, ’she’, ‘che’, ’shche’, ‘ye’,‘ye’,‘yi’,‘yi’,‘yo’,‘yo’,‘a’,‘e’,‘yo’,‘i’,‘o’,‘u’,‘y’,‘e’,‘yu’,‘ya’ );
  5.  
  6.         $ru_consonants  = array(‘/б/’,‘/в/’,‘/г/’,‘/д/’,‘/ж/’, ‘/з/’,‘/й/’,‘/к/’,‘/л/’,‘/м/’,‘/н/’,‘/п/’,‘/р/’,‘/с/’,‘/т/’,‘/ф/’,‘/х/’, ‘/ц/’, ‘/ч/’, ‘/ш/’, ‘/щ/’,‘/ъ/’,‘/ь/’);
  7.         $en_consonants  = array(‘b’,‘v’,‘g’,‘d’,‘zh’,‘z’,‘y’,‘k’,‘l’,‘m’,‘n’,‘p’,‘r’,’s’,‘t’,‘f’,‘kh’,‘ts’,‘ch’,’sh’,’shch’,,  );
  8.  
  9.         $pattern = array_merge($ru_vowels,$ru_consonants);
  10.         $replace = array_merge($en_vowels,$en_consonants);
  11.  
  12.         foreach ($wordarr as $key=>$item) {
  13.                 $wordarr[$key] = preg_replace($pattern,$replace,strtolower($item));
  14.         }
  15. }
[Slashdot] [Digg] [News2] Бобрдобр [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]