Вернуться   Форум SAPE.RU > Общие вопросы > Разработка и сопровождение сайтов

-->
Ответ
 
Опции темы
Старый 15.11.2009, 18:38   #1
Специалист
 
Аватар для Yurs
 
Регистрация: 27.11.2007
Адрес: Пенза
Сообщений: 465
Вес репутации: 219
Yurs - просто великолепная личностьYurs - просто великолепная личностьYurs - просто великолепная личностьYurs - просто великолепная личностьYurs - просто великолепная личностьYurs - просто великолепная личностьYurs - просто великолепная личностьYurs - просто великолепная личность
Отправить сообщение для Yurs с помощью ICQ
По умолчанию Транслитерация URL

Прошу подсказать в этом вопросе.

Есть у меня сайт (движок полностью самопис, smarty НЕ используется, всё в коде), где наряду с англоязычными, встречаются страницы и с русскими символами, т.е. вида

http://site.ru/русское_название.html

ясное дело они не открываются; как бы это дело перевести в

http://site.ru/russkoe_nazvanie.html

наипростейшим методом, может есть (полу)готовые решения какие-то ? Вообщем не силен я в этой теме, буду рад получить подсказки.
__________________
Русскоязычный фан-клуб Avril Lavigne
Yurs вне форума   Ответить с цитированием
Старый 15.11.2009, 19:09   #2
Эксперт
 
Аватар для Al Pacino
 
Регистрация: 09.05.2008
Адрес: ПГ
Сообщений: 1,704
Вес репутации: 0
Al Pacino имеет ошибки в прошлом
По умолчанию

первое что приходит на ум -

таблица подстановок при парсинге ссылки.
__________________
есть тема?
Al Pacino вне форума   Ответить с цитированием
Старый 15.11.2009, 19:57   #3
Специалист
 
Аватар для pma87
 
Регистрация: 12.05.2008
Адрес: Адрес: Адрес:
Сообщений: 119
Вес репутации: 200
pma87 - как роза среди колючекpma87 - как роза среди колючекpma87 - как роза среди колючекpma87 - как роза среди колючек
По умолчанию

Код:
<?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);
}

?>
В коде будет translitIt($transtext); где $transtext - url, который надо транслитерировать.
pma87 вне форума   Ответить с цитированием
Старый 15.11.2009, 23:07   #4
Эксперт
 
Аватар для extruder
 
Регистрация: 27.03.2009
Сообщений: 1,239
Вес репутации: 235
extruder - прекрасное будущееextruder - прекрасное будущееextruder - прекрасное будущееextruder - прекрасное будущееextruder - прекрасное будущееextruder - прекрасное будущееextruder - прекрасное будущееextruder - прекрасное будущееextruder - прекрасное будущееextruder - прекрасное будущееextruder - прекрасное будущее
По умолчанию

У меня вот такая функция.

Код:
function translit($s)
{
  $s = str_replace("&quot;","",$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));
}
extruder вне форума   Ответить с цитированием
Старый 16.11.2009, 08:49   #5
Специалист
 
Аватар для Yurs
 
Регистрация: 27.11.2007
Адрес: Пенза
Сообщений: 465
Вес репутации: 219
Yurs - просто великолепная личностьYurs - просто великолепная личностьYurs - просто великолепная личностьYurs - просто великолепная личностьYurs - просто великолепная личностьYurs - просто великолепная личностьYurs - просто великолепная личностьYurs - просто великолепная личность
Отправить сообщение для Yurs с помощью ICQ
По умолчанию

Угу, всем спасибо, примерно понял, что и как.
__________________
Русскоязычный фан-клуб Avril Lavigne
Yurs вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
транслитерация урлов в 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.