транслитерация по правилам
Не знаю как вам, други, а мне-таки кажется, что я написал очередную функцию транслитерации на PHP. На этот раз – вроде, с учетом правил, написанных в умной книжке умным дядькой.
Собственно, пользуйтесь =)
public function transliterate(&$wordarr) { $ru_vowels = array( '/же/', '/ше/', '/че/', '/ще/', '/ье/','/ъе/','/ьи/','/ъи/','/ъо/','/ьо/','/а/','/е/', '/ё/' ,'/и/','/о/','/у/','/ы/','/э/','/ю/', '/я/',); $en_vowels = array( 'zhe', 'she', 'che', 'shche', 'ye','ye','yi','yi','yo','yo','a','e','yo','i','o','u','y','e','yu','ya' ); $ru_consonants = array('/б/','/в/','/г/','/д/','/ж/', '/з/','/й/','/к/','/л/','/м/','/н/','/п/','/р/','/с/','/т/','/ф/','/х/', '/ц/', '/ч/', '/ш/', '/щ/','/ъ/','/ь/'); $en_consonants = array('b','v','g','d','zh','z','y','k','l','m','n','p','r','s','t','f','kh','ts','ch','sh','shch','', ''); $pattern = array_merge($ru_vowels,$ru_consonants); $replace = array_merge($en_vowels,$en_consonants); foreach ($wordarr as $key=>$item) { $wordarr[$key] = preg_replace($pattern,$replace,strtolower($item)); } }
Похожих записей нет.
5 Комментариев
April 3rd, 2008
За правила спасибо.
Смущает только одно — зачем preg, если хватит простого srt_replace?
April 4th, 2008
Была идея расширить preg до работы со словами, написанными в разных РеГиСТрах, но, думаю, что str_rep действительно будет эффективнее, спасибо. Скоро положу дополненную версию.
September 4th, 2008
Very usefull! Thank you
March 6th, 2009
Спасибо.
Думаю, на str_replace заменить сможет каждый.:) Главное – таблица.
March 8th, 2009
66 страниц текста о транслите – это пипец! Надо обладать колоссальной выносливостью, чтобы все это скучное дело прочитать. За функцию спасибо, думаю, что пригодится, при создании рассылки по СМС (думаю внедрить такой функционал в один из проектов для эксперимента.)
Добавить комментарий