我有一些自定义 header ,它在 $_SERVER
中不可见,但在帮助 apache_request_headers()
中可见。
而且这种问题只存在于一个基于 Windows 的 Apache 版本(OpenServer)中。在 Mac 和 Linux 上,Apache 将所有 header 传递给 php,我可以在 $_SERVER
变量中看到它...也许对 windows 有一些限制?或者 apache.conf 中是否有任何设置可以激活将所有 header 传递给 mod_php?
最佳答案
当 PHP 在 Windows 上作为 Apache 模块运行时,您不会在 $_SERVER 自动全局数组中看到所有 header 。
您必须使用 apache_request_headers() 检索它们。您可以使用一些代码来获得跨平台部署:
function GetHeader($myheader) {
if (isset($_SERVER[$myheader])) {
return $_SERVER[$myheader];
} else {
$headers = apache_request_headers();
if (isset($headers[$myheader])) {
return $headers[$myheader];
}
}
return '';
}
如果你的 PHP 足够新,你也可以试试 getallheaders()。
关于php - 并非所有 header 都在 $_SERVER [PHP] 中可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15382407/