(PHP 5, PHP 7, PHP 8)
headers_list — Returns a list of response headers sent (or ready to send)
headers_list() will return a list of headers to be sent to the browser / client. To determine whether or not these headers have been sent yet, use headers_sent() .
This function has no parameters.
Returns a numerically indexed array of headers.
Example #1 Example using headers_list()
<?php
/* setcookie() will add a response header on its own */
setcookie('foo', 'bar');
/* Define a custom response header
This will be ignored by most clients */
header("Example-Test: foo");
/* Specify plain text content in our response */
header('Content-Type: text/plain; charset=UTF-8');
/* What headers are going to be sent? */
var_dump(headers_list());
?>
The above example will output something similar to:
array(3) { [0]=> string(19) "Set-Cookie: foo=bar" [1]=> string(17) "Example-Test: foo" [2]=> string(39) "Content-Type: text/plain; charset=UTF-8" }
Note:
Headers will only be accessible and output when a SAPI that supports them is in use.
note that it does not return the status header
<?php
header('HTTP/1.1 301 Moved Permanently', true, 301);
header('foo: bar');
header('a: b');
header('colon less example');
print_r(headers_list());
?>
Array
(
[0] => X-Powered-By: PHP/5.4.7
[1] => foo: bar
[2] => a: b
)
This function won't work for when you're running PHP from the command line. If will always return an empty array. This can be an issue when testing your project using PHPUnit or Codeception.
To solve this, install the xdebug extension and use `xdebug_get_headers` when on the cli.
<?php
$headers = php_sapi_name() === 'cli' ? xdebug_get_headers() : headers_list();
?>