这很简单。似乎有很多解决方案来确定URL是否包含特定的键或值,但奇怪的是我无法找到确定URL是否完成查询的解决方案。
使用PHP,我只想检查当前URL是否有查询字符串。例如:http://abc.com/xyz/?key=value VS. http://abc.com/xyz/。
答案 0 :(得分:36)
对于任何URL作为字符串:
if (parse_url($url, PHP_URL_QUERY))
如果是当前请求的网址,只需:
if ($_GET)
答案 1 :(得分:9)
最简单的方法可能是查看$_GET[]
是否包含任何内容。这可以使用empty()
函数完成,如下所示:
if(empty($_GET)) {
//No variables are specified in the URL.
//Do stuff accordingly
echo "No variables specified in URL...";
} else {
//Variables are present. Do stuff:
echo "Hey! Here are all the variables in the URL!\n";
print_r($_GET);
}
答案 2 :(得分:1)
像这样:
if (isset($_SERVER['QUERY_STRING'])) {
}
答案 3 :(得分:1)
parse_url
似乎是合乎逻辑的选择。但是,我无法想到一个'?'在URL中不会表示查询字符串的开头,因此对于(非常小的)性能增加,您可以使用
return strpos($url, '?') !== false;
超过1,000,000次迭代,strpos的平均时间约为1.6秒,而parse_url的平均时间为1.8。话虽如此,除非您的应用程序检查数百万个查询字符串的网址,否则我会选择parse_url
。