2012-04-11 93 views
1

我已经给出了一些指示,以百分比编码一次URL两次。我知道如何对URL进行百分比编码,但是如何做两次?百分比编码URL两次

Surly当它编码一次时,再次编码时会相同。

我错过了什么吗?

指令或算法会很棒!

回答

5

因为你编码用于编码的%它不会是相同的。

$url = 'http://www.youtube.com/watch?v=35_0IN36rUI' 
echo $url; 
echo urlencode($url); 
echo urlencode(urlencode($url)); 

会给:

http://www.youtube.com/watch?v=35_0IN36rUI 
http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D35_0IN36rUI 
http%253A%252F%252Fwww.youtube.com%252Fwatch%253Fv%253D35_0IN36rUI 
4

要倍加编码网址在PHP做:

$encodedUrl = urlencode(urlencode($url)); 

肯定是不一样的输出编码的两倍时。首先增加了百分之编码和第二实际上将编码这些百分号...例如:

urlencode('guts & glory'); // "guts+%26+glory" 
urlencode(urlencode('guts & glory')); // "guts%2B%2526%2Bglory"