如何检查url中是否存在任何php参数

问题描述:

我正在使用GET方法创建一个基于URL中的类别访问线程的论坛。如果url中没有参数,我想重定向到一个错误页面,但我希望这是一个可以在我的整个站点上使用的通用代码片段。如何检查url中是否存在任何php参数

例如:

的网址通常会包含类别ID:

localhost/myforum/threads.php?categoryid=1 

我想它,以便当网址:

localhost/myforum/threads.php 

它重定向到一个错误页面,并且这段代码可在网站上使用

+0

你的问题有答案。检查$ _GET数组,或http://php.net/manual/en/function.parse-url.php。 – Peter

Just :

if (empty(array_diff($_GET, ['']))) { 
    header("Location: /path/to/error.php"); 
} 

编辑:更新,删除空值

+0

请在空白调用关闭if条件后添加右括号。 –

+0

@TurboPT错过了,谢谢。 – 2017-04-24 01:52:09

+0

@PedroLobito它返回true。 – 2017-04-24 03:09:48

尝试:

$gets = parse_url($url)); 
if($gets['query'] == "") 
{ 
    echo "No GET variables"; 
} 

您可以使用is_set检查,如果该参数存在这样的,

isset($_GET) 
+1

'isset'不是'is_set',这只会检查一个名为categoryid的参数,而不是其他参数。 – 2017-04-24 01:54:01

最可靠的方法是检查URL是否包含问号:

if (false !== strpos($_SERVER['REQUEST_URI'], '?')) { 
    // There is a query string (including cases when it's empty) 
}