开发者

PHP - How to re-encode a URI

I think I have the need to take a uri which has been decoded in PHP, and re-encode it.

Here is the situation:

  1. JavaScript passes encoded uri as query string parameter to php script.
  2. PHP script embeds uri as a hidden input value in an html document, responds with the document to a user agent.
  3. JavaScript reads embedded uri and sets location of current document based on value of hidden input.
开发者_高级运维

On Step 2, I am finding that the Uri is fully decoded after reading it in via $_GET. So when I embed the uri in the hidden input, it becomes un-encoded. So I would like to run a PHP script which re-encodes the Uri properly ex:

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

==>

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

Is there a pre-built php function for this or should I just write my own?

PLEASE NOTE: urlencode and urldecode are not the answer to get the desired input/output I have in the example above.

Thanks, Macy


Are you looking for : http://fr.php.net/manual/en/function.urlencode.php ?


I don't know if will help you, but PHP have 3 useful functions:

$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.

or, if you want to mount a query, you can use http_build_query(); that accepts values from an array, like:

$url = 'http://my.example.com/dog walk?';
$array = Array (
 'is' => 'very_great',
);
$url_created = $url . http_build_query($array);


urldecode:

http://www.php.net/manual/en/function.urldecode.php

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜