我得到了一些指令来对 URL 进行两次百分比编码。我知道如何对 URL 进行一次百分比编码,但你如何进行两次呢?
Surly 编码一次,再次编码时还是一样。
我错过了什么吗?
指令或算法会很棒!
它将不一样,因为您对%
用于编码的编码进行了编码。
$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
要在 php 中对 Url 进行双重编码,请执行以下操作:
$encodedUrl = urlencode(urlencode($url));
编码两次时绝对不一样的输出。第一个添加百分比编码,第二个实际上将编码这些百分比符号......例如:
urlencode('guts & glory'); // "guts+%26+glory"
urlencode(urlencode('guts & glory')); // "guts%2B%2526%2Bglory"