我已经获得了两次编码URL的百分比指令。我知道如何对URL进行一次百分比编码,但是你怎么做两次?
当它被编码一次时,它会在再次编码时相同。
我错过了什么吗?
说明或算法会很棒!
答案 0 :(得分: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
答案 1 :(得分:4)
要在php中对Url进行双重编码:
$encodedUrl = urlencode(urlencode($url));
编码两次时绝对不是相同的输出。第一个添加百分比编码,第二个实际编码百分号...例如:
urlencode('guts & glory'); // "guts+%26+glory"
urlencode(urlencode('guts & glory')); // "guts%2B%2526%2Bglory"