获取URL的查询部分

时间:2011-10-24 16:55:51

标签: php parsing

我有一个页面可以链接到以下任何一种格式:

当存在URL的查询部分时,我需要使用PHP捕获它。我尝试使用 parse_url ,但我不确定如何使用它。试过这个

echo (parse_url($_SERVER['REQUEST_URI']['query'])); 

但它返回Array ...

4 个答案:

答案 0 :(得分:6)

你应该这样做:

$parsed = parse_url($_SERVER['REQUEST_URI']);
echo $parsed['query'];

修改

如果您只需要URL的查询部分,那么以下Salman的解决方案实际上更好一点:

echo parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY);

答案 1 :(得分:3)

parse_url的可选第二个参数允许您准确指定所需的URL部分:

<?php
echo parse_url("http://mydomain.com/linkID", PHP_URL_QUERY); // <empty string>
echo parse_url("http://mydomain.com/linkID?9c1023a67eaf46cae864a31097", PHP_URL_QUERY); // 9c1023a67eaf46cae864a31097

另一方面,如果适用,更容易使用服务器变量:

echo isset($_SERVER["QUERY_STRING"]) ? $_SERVER["QUERY_STRING"] : "";

答案 2 :(得分:1)

$_SERVER['QUERY_STRING'];

这应该是你所需要的。见$_SERVER variables

答案 3 :(得分:1)

parse_url使用以下键返回关联数组(也称为哈希,字典等):

scheme - e.g. http
host
port
user
pass
path
query - after the question mark ?
fragment - after the hashmark #

可能会破坏这样的事情:

scheme   user    password   host              port path       query     fragment
[http]://[santa]:[password]@[www.website.com]:[80]/[page.php]?[var=val]#[anchor]
你好像正在寻找其中一个:

$parsedUrl = parse_url($_SERVER['REQUEST_URI']);
echo $parsedUrl['query'];
echo $_SERVER['query_string'];