INPUT_SERVER returns 空
INPUT_SERVER returns null
当我尝试将 filter_input
与 INPUT_SERVER
一起使用时,我得到了奇怪的结果(我正在使用 PHP 5.6.9)。
我运行这个代码:
var_dump($_SERVER);
foreach (array_keys($_SERVER) as $varkey) {
var_dump($varkey, filter_input(INPUT_SERVER, $varkey));
}
我得到每个 filter_input(INPUT_SERVER, $varkey)
returns null。但是 $_SERVER
有正确的值。
为什么会这样?
这是一个已知的 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);
}
这是我的包装,直到他们解决这个问题。在那之前它必须处理它。
当我尝试将 filter_input
与 INPUT_SERVER
一起使用时,我得到了奇怪的结果(我正在使用 PHP 5.6.9)。
我运行这个代码:
var_dump($_SERVER);
foreach (array_keys($_SERVER) as $varkey) {
var_dump($varkey, filter_input(INPUT_SERVER, $varkey));
}
我得到每个 filter_input(INPUT_SERVER, $varkey)
returns null。但是 $_SERVER
有正确的值。
为什么会这样?
这是一个已知的 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);
}
这是我的包装,直到他们解决这个问题。在那之前它必须处理它。