PHP如何获取http头信息

记住一座城 发布于 2014/10/26 22:54
阅读 5K+
收藏 2
在apache环境下可以通过getallheaders获取,nginx下获取不到。
加载中
0
yak
yak
$_SERVER
0
mickelfeng
mickelfeng
if (!function_exists('getallheaders'))
{
    function getallheaders()
    {
        foreach ($_SERVER as $name => $value)
        {
            if (substr($name, 0, 5) == 'HTTP_')
            {
                $headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
            } 
        } 
        return $headers;
    } 
}



记住一座城
记住一座城
回复 @mickelfeng : 我要获取自定义的http头,而不是HOST,CONNECTION这些常规的。
mickelfeng
mickelfeng
回复 @重庆崽儿 : var_dump(getallheaders());为什么获取不了
记住一座城
记住一座城
这个方法我试过了,获取不了。
0
顾真源
<?php   
<span class="html">if (!function_exists('getallheaders'))   
{  
    function getallheaders()   
    {  
       foreach ($_SERVER as $name => $value)   
       {  
           if (substr($name, 0, 5) == 'HTTP_')   
           {  
               $headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;  
           }  
       }  
       return $headers;  
    }  
}</span>   
?>   




记住一座城
记住一座城
获取不了
0
北纬320
北纬320
$_SERVER +2
0
OSC首席保安
OSC首席保安
PHP自带的get_headers()。。。 
0
mickelfeng
mickelfeng
<?php
$a['HTTP_USER_NAME']="mickelfeng";
echo "SAPI:".PHP_SAPI;
echo PHP_EOL;
if (!function_exists('getallheaders'))
{
    function getallheaders($array)
    {
        $_SERVER=array_merge($array,$_SERVER);
        foreach ($_SERVER as $name => $value)
        {
            if (substr($name, 0, 5) == 'HTTP_')
            {
                $headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
            }
        }
        return $headers;
    }
}


var_dump(getallheaders($a));

5.5.7 此函数可用于 CLI server。
5.4.0 此函数可用于 FastCGI。 此前仅在PHP以 Apache 模块方式运行时支持。

记住一座城
记住一座城
不好意思我的意思没表达清楚,比如我设置了一个http头,USERNAME:OSCCHINA。这个USERNAME的值要如何获取,$_SERVER中并未保存。
0
开源中国董事会主席
开源中国董事会主席

HTTP 头?

request 的?还是 response 的?

request 的 参考 2、3、4楼。

response 的 使用 curl 请求一下那个 url,然后能够得到

0
mickelfeng
mickelfeng

5.5.7 此函数可用于 CLI server。
5.4.0 此函数可用于 FastCGI。 此前仅在PHP以 Apache 模块方式运行时支持。
curl可以。过滤HTTP头可以,扩展函数。



0
猪猪
猪猪

$_SERVER 里有只是会多了HTTP前缀

0
断翅Lv27
断翅Lv27
var_dump($_SERVER),肯定会找到的
返回顶部
顶部