[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Конвертер кириллицы для url
LRCenter
Подскажите где взять php-конвертер кириллицы и такой формат (не знаю как он называется - хотябы подскажите), например:

http://ru.wikipedia.org/wiki/Знаменитые_алмазы

-->

http://ru.wikipedia.org/wiki/%D0%97%D0%BD%...%B0%D0%B7%D1%8B

?



Спустя 18 минут, 11 секунд (14.03.2011 - 13:38) Trianon написал(а):
rawurlencode() ?

Спустя 18 минут, 29 секунд (14.03.2011 - 13:56) LRCenter написал(а):
Trianon
Спасибо, реально помог!
Только вот эта функция http: и все слэши в url тоже кодирует. как-бы этого надежно избежать?

Спустя 27 минут, 19 секунд (14.03.2011 - 14:23) Trianon написал(а):
1 вариант.
найдите в строке последний слэш,
отделите строчку после него, закодируйте её, присоедините к началу.

2 вариант.
замена символов с помощью preg_replace по шаблону.

первый вариант скорее всего быстрее и проще выйдет.

Спустя 11 минут, 8 секунд (14.03.2011 - 14:35) LRCenter написал(а):
Trianon
Неуниверсально. А если адрес будет такой.

домен/кириллица/кириллица/


Как быть со слэшом посреди кириллицы?

Спустя 2 минуты, 15 секунд (14.03.2011 - 14:37) Trianon написал(а):
тогда разделяйте по слэшу на фрагменты, преобразуйте эти фрагменты и склеивайте результат обратно.

правда схему с доменом стоит всё же отделить.

Спустя 9 минут, 54 секунды (14.03.2011 - 14:47) neadekvat написал(а):
Хм, а по-моему, еще вариант, как-то так:
$url = 'http://google.com/?q=Некий запрос';
$url = urlencode($url);
$url = str_replace(array('%3A', '%2F'), array(':', '/'), $url);
echo $url;

Правда, в реальных проектах так не делал, подводных камней пока не вижу.

Спустя 3 минуты, 22 секунды (14.03.2011 - 14:50) Trianon написал(а):
как раз внутри query_string слэши стоило бы заекодить. smile.gif


Спустя 7 минут, 44 секунды (14.03.2011 - 14:58) neadekvat написал(а):
Да, действительно, вот и неуведнный минус.
Ну, что ж, тогда предложенные выше сопособы.

Спустя 2 месяца, 8 дней, 21 час, 4 минуты, 23 секунды (23.05.2011 - 11:02) ariecx написал(а):
$url = 'http://google.com/модуль//действие?q=Некий запрос&arr[]=Некий запрос2&arr[][qq]=Некий запрос3';
$purl = parse_url($url);

if(!empty($purl['query'])){
parse_str($purl['query'], $query);
array_walk_recursive($query, function($item, $key){
return urlencode($item);
});
$query = '?'.http_build_query($query);
}else $query = '';

$path = preg_split('!/!', $purl['path'], -1, PREG_SPLIT_NO_EMPTY);
if($path) $path = implode('/', array_map('urlencode', $path)).'/';
else $path = '';

$url = "{$purl['scheme']}://{$purl['host']}/$path$query";
echo $url;


;)


_____________
Меньше кода - меньше багов ©
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.