15.11.2009, 18:38 | #1 |
Специалист
|
Транслитерация URL
Прошу подсказать в этом вопросе.
Есть у меня сайт (движок полностью самопис, smarty НЕ используется, всё в коде), где наряду с англоязычными, встречаются страницы и с русскими символами, т.е. вида http://site.ru/русское_название.html ясное дело они не открываются; как бы это дело перевести в http://site.ru/russkoe_nazvanie.html наипростейшим методом, может есть (полу)готовые решения какие-то ? Вообщем не силен я в этой теме, буду рад получить подсказки.
__________________
|
15.11.2009, 19:57 | #3 |
Специалист
Регистрация: 12.05.2008
Адрес: Адрес: Адрес:
Сообщений: 119
Вес репутации: 200
|
Код:
<?php function translitIt($transtext) { $transsimvol = array( "А"=>"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","Ъ"=>"","Ы"=>"y","Ь"=>"", "Э"=>"e","Ю"=>"yu","Я"=>"ya","а"=>"a","б"=>"b", "в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"j", "з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l", "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r", "с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h", "ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"", "ы"=>"y","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya", " "=> "-", "!"=> "", "@"=> "", "#"=> "", "$"=> "", "%"=> "", "^"=> "", "&"=> "", "*"=> "", "("=> "", ")"=> "", "_"=> "", "+"=> "", "="=> "", "\""=> "", "№"=> "", ";"=> "", "?"=> "", ":"=> "", "<"=> "", ">"=> "", "/"=> "", "\\"=> "", "'"=> "", "["=> "", "]"=> "", "{"=> "", "}"=> "", "|"=> "", "."=> "", ","=> "" ); return strtr($transtext,$transsimvol); } ?> |
15.11.2009, 23:07 | #4 |
Эксперт
Регистрация: 27.03.2009
Сообщений: 1,239
Вес репутации: 235
|
У меня вот такая функция.
Код:
function translit($s) { $s = str_replace(""","",$s); $s = preg_replace("/[^a-zA-Zа-яА-я0-9_-\s]/","",$s); $tr = array(" "=>"_","а"=>"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","щ"=>"sh","ъ"=>"y","ы"=>"y","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya"); $c = ""; $s = toLower($s); for ($i=0;$i<strlen($s);$i++) { $c = $c.strtr($s[$i],$tr); } return ($c); } function toLower($s) { $s= strtr($s, "АБВГДЕЁЖЗИЙКЛМНОРПСТУФХЦЧШЩЪЬЫЭЮЯ","абвгдеёжзийклмнорпстуфхцчшщъьыэюя"); return (strtolower($s)); } |
16.11.2009, 08:49 | #5 |
Специалист
|
Угу, всем спасибо, примерно понял, что и как.
__________________
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
транслитерация урлов в smarty | ncx | Разработка и сопровождение сайтов | 10 | 21.12.2008 21:43 |
Google транслитерация | shefpovar | Общие вопросы оптимизации | 0 | 08.12.2008 14:05 |
Транслитерация - это, надеюсь, не баян? | Spieler | Google, MSN, Yahoo | 21 | 12.03.2008 21:37 |
Часовой пояс GMT +3, время: 06:07.