2009-10-21 80 views
2

当我输出$_SERVER['REQUEST_URI'];

http://localhost/tools/?tool=cs&sub=1 

我得到:

/tools/?tool=cs⊂=1 

是否有其他解决方案,使/tools/?tool=cs&sub=1除了使用&代替&

+0

使用'&'而不是' &*是*解决方案。 – Gumbo 2009-10-21 13:30:06

回答

4

这是因为你在回应你的浏览器 - &sub被解释为一个HTML实体(⊂)。

如果你echo htmlentities($_SERVER['REQUEST_URI']);你会得到你所期望的。

您必须为您所在的环境使用正确的编码 - 使用HTML表示使用&

+0

如果你使用UTF-8,我会推荐你​​使用htmlentities($ _ SERVER ['REQUEST_URI'],ENT_QUOTES,“UTF-8”)。 – Alex 2009-10-21 13:55:27

0

你是如何输出这个值?如果你将它转储到浏览器,你确定它不是试图解码嵌入的&符号吗?

尝试只用

<?php phpinfo(); 

文件,并期待看到什么值显示为(接近底部)

1

试试这个

echo urldecode($_SERVER['REQUEST_URI']);