2016-12-28 77 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