Echo替代$ _GET请求方法

时间:2012-04-18 17:12:55

标签: php get

我知道这个方法:

stackoverflow.com/?id=stack

<?php 
   echo $_GET['id'];
   //output: stack
?>

但我想知道如果url是这样的话,如何获得$ _GET请求:

stackoverflow.com/?stack

<?php 
   echo ???
   //output: stack
?>

请注意,/?之后的内容会动态更改。

8 个答案:

答案 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上查看它会有所帮助。

http://localhost/?stack

代码:

<?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);
?>