百分比编码网址两次

时间:2012-04-11 19:16:31

标签: php vb.net url web affiliate

我已经获得了两次编码URL的百分比指令。我知道如何对URL进行一次百分比编码,但是你怎么做两次?

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

我错过了什么吗?

说明或算法会很棒!

2 个答案:

答案 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"