基于这个答案,我正在尝试实现一个非常简单的速记函数来发送标头。
函数如下所示:
function hdr($code)
{
if (!headers_sent())
{
header('x', TRUE, $code);
}
}
现在,它在我的本地服务器中运行良好,但是一旦我投入生产,我就会得到 500,并且以下内容构成了错误日志:
[2012 年 6 月 19 日星期二 11:01:59] [错误] [客户端 87.12.83.179] 脚本中的标头格式不正确。错误的标头=x:php54.cgi
如果我这样修改函数:
function hdr($code)
{
if (!headers_sent())
{
header($_SERVER['SERVER_PROTOCOL'], TRUE, $code);
}
}
它适用于生产环境,但不适用于本地。
我想问题出在生产 php 是 cgi 脚本吗?有什么方法可以解决问题(即为所有功能提供一个功能)而不使用"代码"=>"消息"的关联数组?
问题是,标题永远不会看起来像X
。标头块以类似
HTTP/1.1 200 OK
然后只有键值对跟随
A-Header: Some value
似乎,网络服务器接受没有状态的HTTP/1.1
作为标题,但你不应该依赖它。此外,您的本地服务器接受X
作为标题值并不意味着您应该使用它;)