PHP - Как перекодировать URI - PullRequest
0 голосов
/ 22 января 2011

I думаю Мне нужно взять URI, который был декодирован в PHP, и перекодировать его.

Вот ситуация:

  1. JavaScript передает закодированный uri как параметр строки запроса в скрипт php.
  2. PHP-скрипт внедряет uri как скрытое значение ввода в htmldocument отвечает документом на пользовательский агент.
  3. JavaScript читает встроенный uri и устанавливает местоположение текущего документа на основе значения скрытого ввода.

На шаге 2 я нахожучто Uri полностью декодируется после чтения его через $ _GET.Поэтому, когда я встраиваю URI в скрытый ввод, он становится незашифрованным.Поэтому я хотел бы запустить PHP-скрипт, который правильно перекодирует Uri, например:

http://my.example.com/dog walk?is=very great

==>

http://my.example.com/dog%20walk?is=very%20great

Для этого есть встроенная функция php или я должен написать свою собственную?

ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ: urlencode и urldecode не являются ответом для получения желаемого ввода / вывода, который я имею в приведенном выше примере.

Спасибо, Мэйси

Ответы [ 3 ]

3 голосов
/ 22 января 2011
1 голос
/ 23 января 2011

Не знаю, поможет ли это вам, но в PHP есть 3 полезные функции:

$url = parse_url('put the url here');
parse_str( $url['query'], $query ); // generating an array by reference (yes, kinda weird)
echo $query; //in this line, you can encode or decode.

или, если вы хотите смонтировать запрос, вы можете использовать http_build_query ();который принимает значения из массива, например:

$url = 'http://my.example.com/dog walk?';
$array = Array (
 'is' => 'very_great',
);
$url_created = $url . http_build_query($array);
0 голосов
/ 22 января 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...