我正在尝试基于this answer实现一个非常简单的简写函数来发送标题。
功能如下:
function hdr($code)
{
if (!headers_sent())
{
header('x', TRUE, $code);
}
}
现在,它在我的本地服务器上运行良好,但是一旦我投入生产,我得到500,并且以下形成错误日志:
[Tue Jun 19 11:01:59 2012] [错误] [客户端87.12.83.179]来自脚本的标题错误。坏标头= x:php54.cgi
如果我修改这个功能:
function hdr($code)
{
if (!headers_sent())
{
header($_SERVER['SERVER_PROTOCOL'], TRUE, $code);
}
}
它适用于制作,但不适用于本地。
我猜问题是生产php是一个cgi脚本?任何解决问题的方法(即,对所有人都有一个函数),而不使用'codes'的关联数组=> '消息'?
答案 0 :(得分:0)
问题是,标题永远不会像X
。标题块以类似
HTTP/1.1 200 OK
然后只有键值对跟随
A-Header: Some value
似乎网络服务器接受HTTP/1.1
没有状态作为标题,但你不应该依赖它。此外,您的本地服务器接受X
作为标题值并不意味着您应该使用它;)