apache_response_headers
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
apache_response_headers — 获得全部 HTTP 响应 header
参数
此函数没有参数。
返回值
成功时返回全部 Apache 响应 header 的数组。
示例
示例 #1 apache_response_headers() 示例
<?php
print_r(apache_response_headers());
?>以上示例的输出类似于:
Array
(
    [Accept-Ranges] => bytes
    [X-Powered-By] => PHP/4.3.8
)
参见
- apache_request_headers() - 获取全部 HTTP 请求 header
 - headers_sent() - 检测消息头是否已经发送
 - headers_list() - 返回已发送的 HTTP 响应头(或准备发送的)
 
  +添加备注
  
用户贡献的备注 6 notes
  
  
  Isaac Z dot  Schlueter i at foohack dot com ¶
  
 
  15 years ago
  This function doesn't exist on lighttpd, so I wrote this little function to emulate it:
<?php
if (!function_exists('apache_response_headers')) {
    function apache_response_headers () {
$arh = array();
$headers = headers_list();
        foreach ($headers as $header) {
$header = explode(":", $header);
$arh[array_shift($header)] = trim(implode(":", $header));
        }
        return $arh;
    }
}
?>  
  
  php at mailplus dot pl ¶
  
 
  14 years ago
  I get  "Call to undefined function apache_response_headers()" when using php-cli so be aware of lack of this function CLI.
In my case I was trying to test my app via phpunit (command line tool of course ;)) if it sends proper headers.  
  
  orange ¶
  
 
  19 years ago
  If apache_response_headers() returns an empty array, try calling flush() before and it'll get filled.  
  
  athlet ¶
  
 
  19 years ago
  For apache_response_headers() working good, you need to set  up output_buffering = Off in php.ini  
  
  Daniel Lorch ¶
  
 
  17 years ago
  Addendum: The code
<pre>
<?php
  print_r(apache_request_headers());
?>
</pre>
gives me
 Array
 (
    [X-Powered-By] => PHP/5.1.6
 )
But the code
<pre>
<?php
  ob_end_flush();
print_r(apache_request_headers());
?>
</pre>
Results in
 Array
 (
    [Content-Location] => phpinfo.de.php
    [Vary] => negotiate
    [TCN] => choice
    [X-Powered-By] => PHP/5.1.6
    [Keep-Alive] => timeout=15, max=96
    [Connection] => Keep-Alive
    [Transfer-Encoding] => chunked
    [Content-Type] => text/html
    [Content-Language] => de
 )  
  
  Daniel Lorch ¶
  
 
17 years ago
  I can confirm athlet's experience with apache_response_headers() using PHP 5.1.6. When the resulting array is empty or only contains "X-Powered-By" instead of the full list of values, you'll need to switch off output_buffering _before_ the script has been executed, for example with the following directive in .htaccess:
php_value "output_buffering" "0"
it _doesn't_ work when you do a you ini_set('output_buffering', 0); in your script. Not sure why that is so - it is not a bug in PHP, but probably has to do with how Apache populates the request values.备份地址:http://www.lvesu.com/blog/php/function.apache-response-headers.php