如何检查url中是否存在任何php参数
我正在使用GET方法创建一个基于URL中的类别访问线程的论坛。如果url中没有参数,我想重定向到一个错误页面,但我希望这是一个可以在我的整个站点上使用的通用代码片段。如何检查url中是否存在任何php参数
例如:
的网址通常会包含类别ID:
localhost/myforum/threads.php?categoryid=1
我想它,以便当网址:
localhost/myforum/threads.php
它重定向到一个错误页面,并且这段代码可在网站上使用
Just :
if (empty(array_diff($_GET, ['']))) {
header("Location: /path/to/error.php");
}
编辑:更新,删除空值
请在空白调用关闭if条件后添加右括号。 –
@TurboPT错过了,谢谢。 – 2017-04-24 01:52:09
@PedroLobito它返回true。 – 2017-04-24 03:09:48
尝试:
$gets = parse_url($url));
if($gets['query'] == "")
{
echo "No GET variables";
}
您可以使用is_set检查,如果该参数存在这样的,
isset($_GET)
'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)
}
你的问题有答案。检查$ _GET数组,或http://php.net/manual/en/function.parse-url.php。 – Peter