0

我正在尝试根据这个答案实现一个非常简单的发送标头的速记函数。

函数是这样的:

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 脚本吗?任何解决问题的方法(即,对所有人都有一个功能)而不使用'codes' =>'messages'的关联数组?

4

1 回答 1

0

问题是,标题永远不会看起来像X. 标题块以类似的东西开头

HTTP/1.1 200 OK

然后只有键值对跟随

A-Header: Some value

看起来,网络服务器接受HTTP/1.1没有状态作为标题,但你不应该依赖它。此外,您的本地服务器接受X作为头值并不意味着您应该使用它;)

于 2012-06-19T09:34:22.030 回答