2015-06-14 5 views
2

У меня получились странные результаты, когда я пытаюсь использовать filter_input с INPUT_SERVER (я использую PHP 5.6.9).INPUT_SERVER возвращает null

я запускаю этот код:

var_dump($_SERVER); 
foreach (array_keys($_SERVER) as $varkey) { 
    var_dump($varkey, filter_input(INPUT_SERVER, $varkey)); 
} 

Я понимаю, что каждый filter_input(INPUT_SERVER, $varkey) возвращает нулевое значение. Но $_SERVER имеют правильные значения.

Почему это происходит?

ответ

0

Это известная ошибка PHP. Попробуйте следующее:

$result = filter_input(INPUT_SERVER, 'SERVER_NAME'); 
/* 
* overcome bug filter_input some php versions would return null 
* on some implementations of FCGI/PHP 5.4 and probably older 
* versions as well. 
* 
* https://bugs.php.net/bug.php?id=49184 
*/ 
if (empty($result) && isset($_SERVER['SERVER_NAME'])) { 
    $result = Filter::sanitize($_SERVER['SERVER_NAME'], $filter); 
} 

Это моя обертка, пока они не исправят эту ситуацию. До этого он должен справиться с этим.