downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

apache_setenv> <apache_reset_timeout
[edit] Last updated: Thu, 12 Jan 2012

view this page in

apache_response_headers

(PHP 4 >= 4.3.0, PHP 5)

apache_response_headersFetch all HTTP response headers

Descrierea

array apache_response_headers ( void )

Fetch all HTTP response headers.

Valorile întoarse

An array of all Apache response headers on success sau FALSE în cazul eșecului.

Istoria schimbărilor

Versiunea Descriere
5.4.0 This function became available under FastCGI. Previously, it was supported only when PHP was installed as an Apache module.
4.3.3

Notă:

Începând cu PHP 4.3.3 puteți utiliza această funcție cu modulul de server NSAPI și în webserver-ele Netscape/iPlanet/SunONE.

Exemple

Example #1 apache_response_headers() example

<?php
print_r
(apache_response_headers());
?>

Exemplul de mai sus va afișa ceva similar cu:

Array
(
    [Accept-Ranges] => bytes
    [X-Powered-By] => PHP/4.3.8
)

Vedeți de asemenea



apache_setenv> <apache_reset_timeout
[edit] Last updated: Thu, 12 Jan 2012
 
add a note add a note User Contributed Notes apache_response_headers
php at mailplus dot pl 18-Feb-2011 01:11
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.
Craig Harris 29-Jun-2010 10:04
Be aware that apache_response_headers() does not include all headers, notably the content-type is missing as are any headers which apache will add after the php process completes.

This is a very misleading function, but it does at least have a better output structure than the more complete headers_list() function
Isaac Z dot Schlueter i at foohack dot com 28-May-2009 08:57
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;
    }
}

?>
Daniel Lorch 24-May-2007 09:53
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 24-May-2007 09:46
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.
athlet 01-Feb-2006 09:37
For apache_response_headers() working good, you need to set  up output_buffering = Off in php.ini
orange 05-Sep-2005 08:17
If apache_response_headers() returns an empty array, try calling flush() before and it'll get filled.

 
show source | credits | sitemap | contact | advertising | mirror sites