我知道这个方法:
stackoverflow.com/?id=stack
<?php
echo $_GET['id'];
//output: stack
?>
但我想知道如果url是这样的话,如何获得$ _GET请求:
stackoverflow.com/?stack
<?php
echo ???
//output: stack
?>
请注意,/?
之后的内容会动态更改。
答案 0 :(得分:3)
您可以使用$_SERVER['QUERY_STRING']
答案 1 :(得分:2)
您可以像这样检索$ _GET的所有值:
<?php
foreach($_GET as $key => $value){
// $key = 'stack';
// $value = '';
}
但是,您应该知道应用程序中可能存在哪些值,并为它们编写适当的代码。
答案 2 :(得分:2)
<?php
$key = 'stack';
echo array_key_exists( $key, $_GET ) ? $key : NULL;
?>
我刚注意到你的评论:
注意后面的内容?是动态变化的。
如果你只是想用查询字符串中出现的任何内容动态地做一些事情,那么关于循环$_GET
或访问$_SERVER[ 'QUERY_STRING' ]
的其他答案可能更适合你(真的取决于你在做什么) )。这种情况的另一种可能性是array_keys( $_GET )
答案 3 :(得分:2)
您可以使用$_SERVER获取有关该网址的大量信息,例如
$_SERVER['QUERY_STRING'];
$_SERVER['REQUEST_URI'];
答案 4 :(得分:2)
$_SERVER['QUERY_STRING']
包含您要查找的值。尝试:
<?php
echo $_SERVER['QUERY_STRING'];
答案 5 :(得分:2)
$ _GET ['stack']为空值。
有一个超全球$ _GET数组。我相信在php.net上查看它会有所帮助。
代码:
<?php
echo var_dump($_GET);
输出:
array(1) {
["stack"]=>
string(0) ""
}
答案 6 :(得分:2)
您可以浏览$_GET
的内容并查看其中的内容。在你的情况下,stack
将是空字符串作为值的键。
此外,您可以使用parse_url
并检查结果中的query
密钥,这与使用其他答案中所述的$_SERVER['QUERY_STRING']
相同。
但如果你描述了你想要实现的目标,也许它会有所帮助。
答案 7 :(得分:2)
<?php
$d = array_keys($_GET);
echo array_shift($d);
?>