1

我得到了一些指令来对 URL 进行两次百分比编码。我知道如何对 URL 进行一次百分比编码,但你如何进行两次呢?

Surly 编码一次,再次编码时还是一样。

我错过了什么吗?

指令或算法会很棒!

4

2 回答 2

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
于 2012-04-11T19:20:27.180 回答
4

要在 php 中对 Url 进行双重编码,请执行以下操作:

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

编码两次时绝对不一样的输出。第一个添加百分比编码,第二个实际上将编码这些百分比符号......例如:

urlencode('guts & glory'); // "guts+%26+glory"
urlencode(urlencode('guts & glory')); // "guts%2B%2526%2Bglory"
于 2012-04-11T19:18:52.900 回答