edge: urldecode/urlencode

5 сообщений / 0 new
Последнее сообщение
Гость
edge: urldecode/urlencode

Здравствуйте!

Кто-нибудь в курсе, почему из запроса вида:

http://mysite.ru/myfile?&var=%06%08%04%00%03%04%01

После вот такой обработки:

$u = _GET['var'];
$i = urlencode($u);

Получается $i = %06%08%04%5C0%03%04%01

Почему %5С0 вместо %00?
Каким образом получить значение var такое же как пришло?

Дело все в чем, я не влияю на входящий запрос. Это sms, пришедшая по http протоколу от smsc. И 06 08 04 00 03 04 01 это хидер, который описывает, какое сообщение пришло, то ли это склейка текстовых, то ли мелодия, то ли рисунок. И мне по этим кодам необходимо разобрать сообщение. Но поскольку апач, либо php, декодируют это в символы уже на входе, то обратно полчить коды уже никак не получается.
У кого мысли есть?

edge (не проверено)

[quote=Nick]var уже URL-закодирована. Тебе нужно, наоборот, раскодировать:

$i = urldecode(_GET['var']);
[/quote]

Не, чет ты не то сказал..
С urldecode мы будем иметь в $i примерно вот это:

А вот так: urlencode(stripslaches(_GET['var'])) получаем то, что надо, но до определнного символа. %54 например в этом случае будет выведен как T. Ну в принципе мне уже решение подсказали на одном форуме, надо не _GET пользоваться, а
$_SERVER['QUERY_STRING']; Отсюда берем полностью запрос таким какой он пришел, а дальше разбираем уже как угодно.

Nick
Не в сети
Зарегистрирован: 20/09/2010

encode -- это закодировать
decode -- раскодировать
К тебе приходят данные, уже url-закодированные. Кодировать их еще раз довольно странно.

Nick
Не в сети
Зарегистрирован: 20/09/2010

var уже URL-закодирована. Тебе нужно, наоборот, раскодировать:

$i = urldecode(_GET['var']);

edge (не проверено)

[quote=Nick]encode -- это закодировать
decode -- раскодировать
К тебе приходят данные, уже url-закодированные. Кодировать их еще раз довольно странно.[/quote]

Не, ну ты сам попробуй. Дело-то в том, что в _GET уже лежат вот такие данные:


Просто $e=_GET['var'];
и там символы, а не их коды, которые пришли - %06%08..
Поэтому, чтобы вернуть опять коды, надо ЗАкодировать.
апач 2.0.50 php-5.0.3. В старом апаче похоже так оно и есть, как ты говоришь, потому что не ты один удивляешься.. :-)

RSS-материал