Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#1 2009-03-20 23:15:02

bestxp
Участник
Откуда Россия
Зарегистрирован: 2008-10-13
Сообщений: 133
Рейтинг :   
Сайт

URL и русские буковки

.htacess
RewriteRule ^list/([0-9A-Za-zА-Яа-я_-]+) /index.php?i=list&word=$1 [L,QSA]

в пхп

$word=urldecode($_REQUEST['word']);


в урл localhost/list/ф

делаю echo($word) получаю чёрти-што , по сабжу возможно ли получить нормальный кирилический символ в скрипте который был в запросе в урл или нет?

отказаться от кирилицы физически не реально, либо как нить построить регулярное выражение, но $_SERVER['REQUES_URI'] выдаёт нормальный кирилический символ, может пробывать брать оттуда значение, но моя больная проблема это регулярные ) за 4 часа секса с ними так и не составил нужное выражение (
собстно кто решал эту проблему и как её решить?

Изменено bestxp (2009-03-20 23:18:38)


senior php and js developer

Не в сети

#2 2009-03-21 01:16:21

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: URL и русские буковки

bestxp, отказаться от кириллических символов придётся - они не предусмотрены форматом, в URL'е не могут быть символы с кодом выше 127 (вся кириллица).

Единственный вариант, который частично тебе поможет - конвертить русские буквы в UTF-8 и их уже кодировать в формат %код, к примеру %AA%AB.
Как минимум FireFox этот формат корректно разбирает и в строке "адрес" вместо этой абракадабры будет показывать русские буквы.
Но передавать на WEB сервер всё-равно будет именно абаракадабру.

Не в сети

#3 2009-03-21 09:56:27

bestxp
Участник
Откуда Россия
Зарегистрирован: 2008-10-13
Сообщений: 133
Рейтинг :   
Сайт

Re: URL и русские буковки

тогда придеться копать в сторону preg_match что бы получить русский символ)
решил траблу так

preg_match('#^\/list\/([0-9A-Za-zАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЭЮЯабвгдеёжзийклмнопрстуфхцчшщэюя_-]+)\/{0,1}$#',urldecode($_SERVER['REQUEST_URI']),$words);

патерн почему длинный? потому что в УТФ-8 не все символы входят в диапозон А-Я
и в итоге получаю буковку которая мне нужна была, и без всяких перекодирований, как выше говорил Виталий smile

Изменено bestxp (2009-03-21 10:47:15)


senior php and js developer

Не в сети

#4 2009-03-21 11:34:16

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: URL и русские буковки

bestxp, вообще-то ты сделал практически именно, про что я и говорил smile

Не в сети

#5 2009-03-21 13:02:13

bestxp
Участник
Откуда Россия
Зарегистрирован: 2008-10-13
Сообщений: 133
Рейтинг :   
Сайт

Re: URL и русские буковки

не не не , ты мне не про это говорил) я ничего не конвертил, я только взял урл, и через регулярное вырвал букофку


senior php and js developer

Не в сети

#6 2009-03-21 13:05:14

bestxp
Участник
Откуда Россия
Зарегистрирован: 2008-10-13
Сообщений: 133
Рейтинг :   
Сайт

Re: URL и русские буковки

а потом еще и оставил одну буковку от запроса)

$word=iconv('utf-8','windows-1251',$words[1]);
	$word=mb_strcut($word, 0, 1);
	$word=iconv('windows-1251','utf-8',$word);

ибо у меня всё в утф) а пока нету полной поддержки в php приходиться так изощраться) ^_^ , жду 6 вер)


senior php and js developer

Не в сети

Подвал раздела

Работает на FluxBB