嘿家伙,这很难解释,但基本上我想检测是否有任何变量通过URL设置。因此,与我的IF语句以下所有应返回true:PHP检测是否有任何URL变量已设置
- http://domain.com/index.php?m=100
- http://domain.com/index.php?q=harhar
- http://domain.com/index.php?variable=poo&crazy=yes
和所有下列返回错误:
任何想法?
嘿家伙,这很难解释,但基本上我想检测是否有任何变量通过URL设置。因此,与我的IF语句以下所有应返回true:PHP检测是否有任何URL变量已设置
和所有下列返回错误:
任何想法?
我会测试QUERY_STRING
:
if (!empty($_SERVER["QUERY_STRING"]))
应该效果与检查$_GET
没什么不同,不过 - 无论哪种方式都没问题。
isset($_GET['m'])
或者如果有的话,我相信count($_GET)
可能会奏效。
但是,我不知道变量将被称为什么,这是我的观点。 – zuk1 2010-05-20 15:11:07
如果您是指取一个字符串并检查它是否有查询字符串,则可以使用parse_url。
如果您的意思是检查当前请求是否有查询字符串,您可以检查长度为$_SERVER['QUERY_STRING']
。
如果你的意思是得到从查询字符串被解析的变量数的计数,你可以做count($_GET);
if(!empty($_GET)) {
//GET variables have been set
}
(计数($ _ GET)> 0)
如果你想与(一)变量(一个或多个)外办呢,如果语句中使用这个它会检查前:
if (!isset($_GET['getvariable'])) {
if (!empty($_SERVER["QUERY_STRING"])) {
echo "do something";
}
}
我喜欢这个,因为它会发现:http://example.com/foo.php?thisisaquery。注意缺乏等号。 – jmucchiello 2010-05-20 15:10:02
@jmuchhiello true,但即使在这种情况下,如果我没有弄错,thisisaquery应该出现在$ _GET中作为一个空条目。 – 2010-05-20 15:11:22
从@Pekka一如既往的优秀答案:微妙的差异使其比其他答案更正确 – Josh 2010-05-20 15:11:48