apache_response_headers

(PHP 4 >= 4.3.0, PHP 5)

apache_response_headersTüm HTTP yanıt başlıklarını alır

Açıklama

array apache_response_headers ( void )

Tüm HTTP yanıt başlıklarını alır.

Dönen Değerler

Başarı halinde Apache yanıt başlıklarını içeren bir dizi; aksi halde FALSE döndürür.

Sürüm Bilgisi

Sürüm: Açıklama
5.5.7 Bu işlev CLI sunucusunda kullanılabilir hale geldi.
5.4.0 Bu işlev FastCGI altında kullanılabilir hale geldi. Evvelce, sadece PHP bir Apache modülü olarak kurulduğu takdirde destekleniyordu.
4.3.3

PHP 4.3.3'ten itibaren bu işlevi, NSAPI sunucu modülü ile Netscape/iPlanet/SunONE sunucularında da kullanabilirsiniz.

Örnekler

Örnek 1 - apache_response_headers() örneği

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

Yukarıdaki örnek şuna benzer bir çıktı üretir:

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

Ayrıca Bakınız

  • apache_request_headers() - Tüm HTTP istek başlıklarını alır
  • headers_sent() - Başlıklar gönderilmiş mi, gönderilmişse nerede gönderilmiş diye bakar
  • headers_list() - Gönderilmiş (veya gönderilmeye hazır) yanıt başlıklarının listesiyle döner

add a note add a note

User Contributed Notes 6 notes

up
3
orange
9 years ago
If apache_response_headers() returns an empty array, try calling flush() before and it'll get filled.
up
1
athlet
8 years ago
For apache_response_headers() working good, you need to set  up output_buffering = Off in php.ini
up
0
php at mailplus dot pl
3 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.
up
0
Isaac Z dot Schlueter i at foohack dot com
5 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;
    }
}

?>
up
0
Daniel Lorch
7 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
)
up
0
Daniel Lorch
7 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.
To Top