2012-03-19 44 views
0

我是从与%26的URL它代表&重定向工作了%26,我用urldecode功能对其进行解码它DONOT作品可我知道为什么urldecode没有在PHP它代表及

<?php 
$a="%26amp%3Bmm%3Dyen"; 
echo urldecode($a); 

更新的问题 确定谢谢你们,它的工作原理,但如果这是在url有点像http://example.com?%26amp%3Bmm%3Dyen我不能收到想法_REQUEST ['mm'];它给null为什么?

+2

适合我;输出是“&毫米=日元”。也许你还想使用['html_entity_decode()'](http://php.net/html_entity_decode)或之后的类似命令将“&”转换为“&”。 – Wiseguy 2012-03-19 16:38:45

+0

我认为你的意思是它不会给你你所期望的'&' - 它返回'&' – ManseUK 2012-03-19 16:39:14

+0

适合我的工作 - '&毫米=日元' – 2012-03-19 16:39:31

回答

1

由于您将“=”编码为“%3D”,因此该URL不包含文字“=”字符。因此,“& mm = yen”全部在参数名称中,并且没有值。下面是我得到的,当我print_r($_REQUEST);

Array (
    [&mm=yen] => 
) 

对于价值,你想让它传递,您的网址应该是:

http://example.com?mm=yen 

你应该使用urlencode()当你希望特殊字符被解释为查询字符串的一部分。
在这种情况下,您需要希望这些字符被解释为查询字符串的一部分。