PHP:如何获取无密钥URL参数

时间:2014-06-26 06:28:22

标签: php url-parameters

我想在http://link.com/?parameter

等密钥中获取参数

我在某处读到密钥为NULL且值为parameter

我试过$_GET[NULL],但似乎没有用。

这是我的代码:

if ($_GET[NULL] == "parameter") {
    echo 'Invoked parameter.';
} else {
    echo '..';
}

它只打印出..,这意味着我做得不对。有人可以告诉我正确的方式。

5 个答案:

答案 0 :(得分:3)

PHP中没有无密钥URL参数。 ?parameter相当于$_GET['parameter']被设置为空字符串。

尝试使用http://link.com/?parameter之类的网址var_dump($_GET),看看你得到了什么。

看起来应该是这样的:

array (size=1) 'parameter' => string '' (length=0)

因此,您可以根据应用需求以多种方式对其进行测试:

if (isset($_GET['parameter'])) {
   // do something
} else {
   // do something else
}

// Only recommended if you're 100% sure that 'parameter' will always be in the URL.
// Otherwise this will throw an undefined index error. isset() is a more reliable test.

if ($_GET['parameter'] === '') {
   // do something
} else {
   // do something else
}

答案 1 :(得分:0)

$_GET是一个超级全球assoc数组,其中包含parameter => it's value对。因此,parameter是数组的关键。

例如,如果您的网址是这样的:myweb.com/?page=load&do=magic而不是$_GET

$_GET(
  [page] => load
  [do] => magic
)

如果您只是想测试一下,如果您将URL作为参数parameter,则应该执行以下操作:

if (isset($_GET['parameter'])
  echo "Here I am!";

答案 2 :(得分:0)

你也可以像这样获得整个request_url

echo $_SERVER['REQUEST_URI'];

要在?之后获取零件:

echo explode('?', $_SERVER['REQUEST_URI'])[1];

答案 3 :(得分:0)

您可以通过array_keys()

$param = array_keys($_GET)[0];

这将为您提供第一个查询字符串参数的名称,无论它是否具有值。

您还可以获得所有参数,而不是这样的值:

$empty = [];
foreach($_GET as $key => $value)
    if(strlen($value) === 0) $empty[] = $key;

print_r($empty);

答案 4 :(得分:0)

您可以使用

获取以?开头的网址部分
$_SERVER['QUERY_STRING']