用于检查URL是否包含查询字符串的PHP

den*_*est 12 php

这是个简单的.似乎有很多解决方案来确定URL是否包含特定的键或值,但奇怪的是我无法找到确定URL是否完成查询的解决方案.

使用PHP,我只想检查当前URL是否有查询字符串.例如:http: //abc.com/xyz/ key = value VS. http://abc.com/xyz/.

dec*_*eze 40

对于任何URL作为字符串:

if (parse_url($url, PHP_URL_QUERY))
Run Code Online (Sandbox Code Playgroud)

http://php.net/parse_url

如果它是当前请求的URL,则只需:

if ($_GET)
Run Code Online (Sandbox Code Playgroud)

  • 注意(为了节省其他时间):'just'`if($ _GET)`(对于当前请求)有效,因为空数组在布局`if($ x)`上下文中是`false`.请参阅:http://php.net/manual/en/types.comparisons.php所以确实不需要`count()`或`empty()`. (3认同)
  • 那奏效了。我正在尝试 `if (isset($_SERVER['QUERY_STRING'])) {echo 'has string';} else {echo 'no string';}` 没有运气。谢谢! (2认同)

小智 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);
}
Run Code Online (Sandbox Code Playgroud)