2016-12-28 43 views
0

我想重现PHP版本的复活节彩蛋(http://www.0php.com/php_easter_egg.php)。如何检查空的获取索引?

正如你可以看到,GET参数没有名字:?=PHPE9568F36-D428-11d2-A769-00AA001ACF42

我可以检查与$_SERVER['REQUEST_URI']的URL,但有没有办法检查仅使用$_GET阵列?我试过$_GET[''],但它似乎不起作用。

+1

这是什么'的var_dump($ _ GET)'给你设置'?= PHPE9568F36-D428-11d2-A769-00AA001ACF42'什么时候? – Peon

+0

不,你不能! '$ _GET'将是一个空数组 – Thamilan

+0

这[复活节彩蛋]似乎是PHP4唯一的复活节彩蛋,或者至少,它不适用于各种PHP网站 – Martin

回答

1

$_GET在这个例子中是空的,所以不行,这是不可能的。您可以使用$_SERVER['QUERY_STRING']

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

你会得到什么'?param1 = asd&param3 = 123&= PHP .....'? – Peon

+0

谢谢。我意识到这些解决方案,但是用我自制的路由器并不好。但是,因为这可能是唯一的工作解决方案,我会接受它。 – AnonBird

+0

@DainisAbols你得到的东西,然后你可以解析 – bcmcfc

1

这似乎有趣,所以我做了一个快速的解决方案:

请求参数1 = ASD &参数3 = 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