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 the​​apache_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. 


 

Example #1 getallheaders() example





[php]​view plain​​ ​​copy​


  1. <?php  
  2.   
  3. foreach (getallheaders() as $name => $value) {  
  4.     echo "$name: $value\n";  
  5. }  
  6.   
  7. ?>   


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




[php]​view plain​​ ​​copy​


  1. <?php   
  2. <span class="html">if (!function_exists('getallheaders'))   
  3. {  
  4.     function getallheaders()   
  5.     {  
  6.        foreach ($_SERVER as $name => $value)   
  7.        {  
  8.            if (substr($name, 0, 5) == 'HTTP_')   
  9.            {  
  10.                $headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;  
  11.            }  
  12.        }  
  13.        return $headers;  
  14.     }  
  15. }</span>   
  16. ?>   


好了,看看都打印出了啥吧




[php]​view plain​​ ​​copy​


  1. <?php  
  2. print_r(getallheaders());  


获得结果:




[html]​view plain​​ ​​copy​


  1. Array  
  2. (  
  3.     [Accept] => */*  
  4.     [Accept-Language] => zh-cn  
  5.     [Accept-Encoding] => gzip, deflate  
  6.     [User-Agent] => Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727)  
  7.     [Host] => localhost  
  8.     [Connection] => Keep-Alive