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
)
apache_response_headers
(PHP 4 >= 4.3.0, PHP 5)
apache_response_headers — Fetch all HTTP response headers
Popis
array apache_response_headers ( void )Fetch all HTTP response headers.
Návratové hodnoty
An array of all Apache response headers on success, or FALSE on failure.
Příklady
Příklad 143. apache_response_headers() example
<?php
print_r(apache_response_headers());
?>
Výše uvedený příklad vypíše něco jako:
Array
(
[Accept-Ranges] => bytes
[X-Powered-By] => PHP/4.3.8
)
Poznámky
Poznámka: Od PHP 4.3.3 můžete používat tuto funkci serverového modulu NSAPI také v serverech Netscape/iPlanet/SunONE.
Viz také
| apache_request_headers() |
| headers_sent() |
apache_response_headers
Daniel Lorch
24-May-2007 09:53
24-May-2007 09:53
Daniel Lorch
24-May-2007 09:46
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
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
05-Sep-2005 08:17
If apache_response_headers() returns an empty array, try calling flush() before and it'll get filled.
