如何检查空的get索引?

时间:2016-12-28 16:53:07

标签: php arrays

我想重现PHP版复活节彩蛋(http://www.0php.com/php_easter_egg.php)。

如您所见,get参数没有名称:?=PHPE9568F36-D428-11d2-A769-00AA001ACF42

我可以使用$_SERVER['REQUEST_URI']检查网址,但有没有办法仅使用$_GET数组进行检查?

我尝试$_GET[''],但它似乎无法正常工作。

2 个答案:

答案 0 :(得分:1)

$_GET在这个例子中是空的,所以不,它是不可能的。

$_SERVER['REQUEST_URI']之外,您可以使用$_SERVER['QUERY_STRING']

[QUERY_STRING] => =PHPE9568F36-D428-11d2-A769-00AA001ACF42
[REQUEST_URI] => /test.php?=PHPE9568F36-D428-11d2-A769-00AA001ACF42

答案 1 :(得分:1)

这看起来很有趣,所以我做了一个快速解决方案:

请求?param1 = asd& param3 = 123& = PHPE9568F36-D428-11d2-A769-00AA001ACF42

<强> PHP

function getFullRequest()
{
    $tmp = explode('&', $_SERVER['QUERY_STRING']);
    $request = [];
    if (!empty($tmp) && is_array($tmp)) {
        foreach($tmp as $item) {
            $req = explode('=', $item);
            if (!empty($req) && is_array($req)) {
                $request[$req[0]] = $req[1];
            }
        }
    }

    return $request;
}

$request = getFullRequest();
var_dump($request);

<强>结果

array (size=3)
  'param1' => string 'asd' (length=3)
  'param3' => string '123' (length=3)
  '' => string 'PHPE9568F36-D428-11d2-A769-00AA001ACF42' (length=39) // <- necessary value