2011-01-10 90 views
0

我如何获取当前页面的URL减去所有获取参数(?blah = 2 & blah4 = 90 ...) 我知道我可以得到完整的URL $ _SERVER ['REQUEST_URI']但我想知道是否有更符合我需要的东西。PHP:获取页面URL减去参数

或者我应该只是做strpos?和substr劈砍的论据? (我想,一个$ _ SERVER变种会更有效 - 如果存在的话)

感谢

+0

可能想查看php的parse_url。这应该做你想要的。 – 2011-01-10 02:49:39

回答

5

$_SERVER['REQUEST_URL']

有时答案是简单的:)我发现这里的解决方案:http://php.net/manual/en/reserved.variables.server.php按CTRL + F'ing为“查询”。

编辑

由于matchu在评论中说,并不是所有的服务器都支持REQUEST_URL。在那种情况下,我会使用不太优雅的strtok($url, '?');

+1

事实上,这只是在评论中让我感到紧张。它可能会按预期工作,但可能不适用于所有环境。 – Matchu 2011-01-10 02:52:44

0

您可以使用parse_url function,然后CONCAT需要的部分(方案,主机,端口,用户,通过和路径)

0

你可以像这样做:

$url=$_SERVER["REQUEST_SCHEME"]."://".$_SERVER["HTTP_HOST"].$_SERVER["PHP_SELF"]; 
0

你可以利用这一点,是非常简单的:

$url = explode("?",$_SERVER[REQUEST_URI]); 
$url = "http://$_SERVER[HTTP_HOST]/" . $url[0]; 

随着爆炸的网址,您将有$url[0]“第一部分”,并在$url[1]所有参数。