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

-->
Ответ
 
Опции темы
Старый 24.10.2008, 19:31   #1
Специалист
 
Аватар для Challenger
 
Регистрация: 29.08.2008
Адрес: РОССИЯ. Севастополь.
Сообщений: 430
Вес репутации: 205
Challenger - просто великолепная личностьChallenger - просто великолепная личностьChallenger - просто великолепная личностьChallenger - просто великолепная личностьChallenger - просто великолепная личностьChallenger - просто великолепная личность
Отправить сообщение для Challenger с помощью ICQ
Exclamation Автозамена % на русский в УРЛАХ

Начал экспериментировать с кириллицей в url-адресах...но хотелось бы достичь вот какого эффекта...
Сабж:
УРЛ:
http://xxx.xx/?tag=недорого
После нехитрых преобразований (заюзав urlencode()) выглядит так:
http://xxx.xx/?tag=%ED%E5%E4%EE%F0%EE%E3%EE
Гоша с Яшей понимают его как http://xxx.xx/?tag=недорого .
Все бы хорошо, да не совсем.
В строке браузера такой урл имеет все тот же "процентный" вид:
http://xxx.xx/?tag=%ED%E5%E4%EE%F0%EE%E3%EE
Врятли пользователю удобно ориентироваться по таким ссылкам.
Обратимся к Вики и рассмотрим ссылку:
http://ru.wikipedia.org/wiki/Бернерс-Ли,_Тим
(именно так как я написал)
В коде УРЛ выглядит так:
http://ru.wikipedia.org/wiki/%D0%91%D0%B5%...%A2%D0%B8%D0%BC
Но Вики как то чудно заменят "процентный" УРЛ на более человеко-подобный для браузера.
Как сделать именно так, кто то может подсказать? Наверняка решение совсем простое но я его в упор не вижу. Спасибо.
__________________
Люблю все на "Ш". Шампанское, маШины, женШин...
Challenger вне форума   Ответить с цитированием
Старый 25.10.2008, 00:57   #2
Починяю примуса
 
Аватар для Atomic
 
Регистрация: 26.09.2008
Сообщений: 1,505
Вес репутации: 285
Atomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущее
По умолчанию

Со статикой работаем так
ловим скриптом $_SERVER['REQUEST_URI']
урл декодируем urldecode
перегоняем из utf-8 в ...кодировку сайта

Что касается динамики....смысла не вижу, но принцип похожий только ловим массив $_GET, значения конвертим...
далее обработка движком

В общем и целом, кирилица в урл - зло, очень много подводных камней, начиная от настроек локали сервера заканчивая конкретной реализацией.
Плюс браузеры...

Добавлено через 3 минуты
о, сейчас посмотрел насчет динамики - браузер конвертит автоматом -красивой строки запроса не увидите, поэтому статика здесь нужна

Добавлено через 1 минуту
впрочем как и у вики
__________________
Починяю разнокалиберные примуса здесь.

Последний раз редактировалось Atomic; 25.10.2008 в 00:57. Причина: Добавлено сообщение
Atomic вне форума   Ответить с цитированием
Старый 25.10.2008, 01:02   #3
Особый статус
 
Регистрация: 23.03.2008
Адрес: localhost
Сообщений: 2,594
Вес репутации: 322
Ufaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущее
Отправить сообщение для Ufaweb с помощью ICQ
По умолчанию

Challenger, про кодировки, главное, не забывайте. Помню первый опыт написания движка, когда из ФФ достаточно было получить urldecode($_GET['query])), а из IE приходила белиберда, которую еще нужно сконвертить iconv('utf-8', 'windows-1251', urldecode($_GET['query])))...
Ufaweb вне форума   Ответить с цитированием
Старый 25.10.2008, 11:36   #4
Мастер
 
Регистрация: 17.03.2008
Сообщений: 638
Вес репутации: 237
ahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущее
По умолчанию

Ufaweb, для IE в настройках вроде указывается, конвертить ли URL в UTF-8. Вроде эта галка по умолчанию стоит. И вроде бы это логический верно. Почему ФФ не конвертит в UTF-8 - непонятно. =\
ahsinis вне форума   Ответить с цитированием
Старый 25.10.2008, 16:28   #5
Специалист
 
Аватар для Challenger
 
Регистрация: 29.08.2008
Адрес: РОССИЯ. Севастополь.
Сообщений: 430
Вес репутации: 205
Challenger - просто великолепная личностьChallenger - просто великолепная личностьChallenger - просто великолепная личностьChallenger - просто великолепная личностьChallenger - просто великолепная личностьChallenger - просто великолепная личность
Отправить сообщение для Challenger с помощью ICQ
По умолчанию

Ребят, мой вопрос кто-нить понял? Есть решение моей проблеме?
__________________
Люблю все на "Ш". Шампанское, маШины, женШин...
Challenger вне форума   Ответить с цитированием
Старый 25.10.2008, 16:32   #6
Специалист
 
Аватар для Kaa
 
Регистрация: 08.10.2008
Адрес: Новосиб
Сообщений: 299
Вес репутации: 211
Kaa - прекрасное будущееKaa - прекрасное будущееKaa - прекрасное будущееKaa - прекрасное будущееKaa - прекрасное будущееKaa - прекрасное будущееKaa - прекрасное будущееKaa - прекрасное будущееKaa - прекрасное будущееKaa - прекрасное будущееKaa - прекрасное будущее
Отправить сообщение для Kaa с помощью ICQ
По умолчанию

Цитата:
Сообщение от Challenger Посмотреть сообщение
Но Вики как то чудно заменят "процентный" УРЛ на более человеко-подобный для браузера.
Как сделать именно так, кто то может подсказать? Наверняка решение совсем простое но я его в упор не вижу. Спасибо.
Да все там просто. Вики правит адрес, проверяет есть ли у нее страница под такой адрес, а потом редиректит пользователя.

А вид с "процентного" на нормальный русский в первую очередь браузер сам переключает. Где-то в Опере у себя видел флажек такой.
Kaa вне форума   Ответить с цитированием
Старый 25.10.2008, 17:40   #7
Починяю примуса
 
Аватар для Atomic
 
Регистрация: 26.09.2008
Сообщений: 1,505
Вес репутации: 285
Atomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущее
По умолчанию

Challenger, Вам здесь как минимум два человека дали рецепты, но готовое решение для вашего сайта писАть именно вам...
__________________
Починяю разнокалиберные примуса здесь.
Atomic вне форума   Ответить с цитированием
Старый 25.10.2008, 20:10   #8
Специалист
 
Аватар для Challenger
 
Регистрация: 29.08.2008
Адрес: РОССИЯ. Севастополь.
Сообщений: 430
Вес репутации: 205
Challenger - просто великолепная личностьChallenger - просто великолепная личностьChallenger - просто великолепная личностьChallenger - просто великолепная личностьChallenger - просто великолепная личностьChallenger - просто великолепная личность
Отправить сообщение для Challenger с помощью ICQ
По умолчанию

Цитата:
Сообщение от Atomic Посмотреть сообщение
Challenger, Вам здесь как минимум два человека дали рецепты, но готовое решение для вашего сайта писАть именно вам...
нет, вопрос не поняли. Браузер переключает не сам.
Извиняюсь если криво описал... пока сам поищу решение снова.
__________________
Люблю все на "Ш". Шампанское, маШины, женШин...
Challenger вне форума   Ответить с цитированием
Старый 26.10.2008, 23:03   #9
Специалист
 
Аватар для Challenger
 
Регистрация: 29.08.2008
Адрес: РОССИЯ. Севастополь.
Сообщений: 430
Вес репутации: 205
Challenger - просто великолепная личностьChallenger - просто великолепная личностьChallenger - просто великолепная личностьChallenger - просто великолепная личностьChallenger - просто великолепная личностьChallenger - просто великолепная личность
Отправить сообщение для Challenger с помощью ICQ
По умолчанию

Товарищ Ufaweb был ближе всех к правильному решению, за это ему огромное спасибо и низкий поклон... дал так сказать "направление".
И так, кому будет интересно, вот решение:
Шаг 1: Конвертим принудительно нужный параметр в утф-8 и затем делаем транслитерацию. Выводим для формирование урла то что получили, в итоге в коде будет "процентный" вариант, а в ЛЮБОМ браузере будет кириллица.
PHP код:
iconv('windows-1251''utf-8'$res[$i]);
urlencode($res[$i]) 
Шаг 2: В целевом скрипте (куда это все дело передается) делаем в обратном порядке - сначала декодим, потом принудительно конвертим обратно в сп-1251 и отправляем для формирования запроса к БД предварительно применив пару проверок.
PHP код:
$tag=urldecode($_GET['tag']);
$tag iconv("UTF-8""cp1251"$tag);
$tag=str_replace('_'' '$tag);
$query_str='"%'.$tag.'%"'
__________________
Люблю все на "Ш". Шампанское, маШины, женШин...
Challenger вне форума   Ответить с цитированием
Старый 27.10.2008, 00:06   #10
Особый статус
 
Регистрация: 23.03.2008
Адрес: localhost
Сообщений: 2,594
Вес репутации: 322
Ufaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущее
Отправить сообщение для Ufaweb с помощью ICQ
По умолчанию

Цитата:
Сообщение от Challenger Посмотреть сообщение
а в ЛЮБОМ браузере будет кириллица.
В смысле в адресной строке по-русски?
Надо проверить...

Добавлено через 1 минуту
Или в ссылках <a href="?q=абвгд">?

Последний раз редактировалось Ufaweb; 27.10.2008 в 00:06. Причина: Добавлено сообщение
Ufaweb вне форума   Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ДоговорА... русский не учим? crash Курилка 3 03.10.2008 15:04
Русские буквы в УРЛах solomko.net Вопросы по работе системы 21 02.08.2008 23:47
Русский сайт для буржуев. kazanclub Вопросы по работе системы 6 19.05.2008 00:45
Защита от псевдовараметорв в урлах mihey Вопросы от новичков 4 03.04.2008 23:46
Ошибки в УРЛах с пробелами Peter Ошибки при работе с системой 2 25.02.2007 00:31


Часовой пояс GMT +3, время: 19:09.