可用我有一些自定义标题,它不可见在$_SERVER
,但它可以帮助apache_request_headers()
可见。
而这样的问题只存在于一个基于Windows的Apache版本(OpenServer)中。在Mac和Linux上Apache将所有头文件传递给php,我可以在$_SERVER
变量中看到它...也许对Windows有一些限制?或者有没有在apache.conf中的任何设置可以激活通过所有头到mod_php?
可用我有一些自定义标题,它不可见在$_SERVER
,但它可以帮助apache_request_headers()
可见。
而这样的问题只存在于一个基于Windows的Apache版本(OpenServer)中。在Mac和Linux上Apache将所有头文件传递给php,我可以在$_SERVER
变量中看到它...也许对Windows有一些限制?或者有没有在apache.conf中的任何设置可以激活通过所有头到mod_php?
从PHP文件:http://php.net/manual/en/reserved.variables.server.php
上的评论,请注意:
在Windows IIS 7,您必须使用$ _ SERVER [ 'LOCAL_ADDR']而不是$ _ SERVER [ 'SERVER_ADDR']来获得服务器的IP地址。
看来,一些变量名称在Windows中是不同的,所以你必须找出它们。如果您仔细阅读文档注释,其中一些解决方法有几个解决方法
虽然这并没有帮助,如果标题根本没有,也可能是这样的 – eis 2013-03-13 13:13:03
当PHP在Windows上作为Apache模块运行时,您将看不到$ _SERVER autoglobal阵列上的所有标头。
您必须使用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()可以。
实际上我重新安装openserver和问题已经结束:) – user1016265 2013-03-14 15:25:53
php是以cgi或apache模块运行吗? – Ghigo 2013-03-13 12:35:26
@Ghigo作为模块 – user1016265 2013-03-13 12:55:46