PHP 5.3 getallheaders

时间:2013-03-05 21:17:42

标签: php apache

我正在开发一个Web应用程序,需要捕获客户端发送的自定义标头数据。在我的localhost中安装了PHP 5.4,我正在使用getallheaders()

但是我的主机安装了PHP 5.3。我无法得到标题。我已经尝试过其他方式:

foreach ($_SERVER as $name => $value) 
{ 
    if (substr($name, 0, 5) == 'HTTP_') 
    {
        $name = str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5))))); 
        $headers[$name] = $value; 
    } else if ($name == "CONTENT_TYPE") { 
        $headers["Content-Type"] = $value; 
    } else if ($name == "CONTENT_LENGTH") { 
        $headers["Content-Length"] = $value; 
    } 
}

apache_request_headers(), apache_response_headers()

还有其他方法吗?我的托管使用的是PHP 5.3(FastCGI)。

更新

好吧,我遇到了问题所在。所以首先(为了证明这个概念),我将PHP切换为以Apache模块运行,并按预期为是,我可以使用getallheaders()

之后我尝试了其他rest client / debuger发送自定义标头(现在为FastCGI),我的代码能够捕获标头(在$ _SERVER内)。所以问题是,为什么第一个REST客户端只有在服务器作为Apache模块运行时才能发送头。

如果我的一个用户遇到同样的问题,而另一个用户没问题,我很害怕。

0 个答案:

没有答案