PHP获取http头信息

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. 

Example #1 getallheaders() example


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

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

  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. ?>   


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

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


获得结果:

    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  

原文地址:https://www.cnblogs.com/agang-php/p/7484424.html