php获取http请示的头信息的方法

发布时间:2020-09-02编辑:脚本学堂
在php手册中提供了现成的函数:getallheaders (PHP 4, PHP 5) getallheaders — Fetch all HTTP request headers

php手册中提供了现成的函数:
getallheaders
(PHP 4, PHP 5)
getallheaders — Fetch all HTTP request headers

说明
array getallheaders ( void )
Fetches all HTTP headers from the current request.
This function is an alias for apache_request_headers(). Please read theapache_request_headers() documentation for more information on how this function works.

返回值
An associative array of all the HTTP headers in the current request, orFALSE on failure.

getallheaders()的例子:
 

复制代码 代码如下:
<?php 
     
    foreach (getallheaders() as $name => $value) { 
        echo "$name: $valuen"; 
    } 
?>  
 

不过这个函数只能在apache环境下使用,iis或者nginx并不支持,可以通过自定义函数实现。
 

复制代码 代码如下:
<?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>  
?>  

检测下输出结果吧。
 

复制代码 代码如下:
<?php 
print_r(getallheaders()); 
?>

获得结果:
   Array 
    ( 
        [Accept] => */* 
        [Accept-Language] => zh-cn 
        [Accept-Encoding] => gzip, deflate 
        [User-Agent] => Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727) 
        [Host] => localhost 
        [Connection] => Keep-Alive 
    )