2012-04-11 92 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"