headers_list

(PHP 5, PHP 7, PHP 8)

headers_list返回已发送(或准备发送)的响应头列表

说明

headers_list(): array

headers_list() 将返回一个要发送到浏览器/客户端的头列表。要确定这些头是否已发送,请使用 headers_sent().

参数

此函数没有参数。

返回值

返回一个包含头信息的数字索引数组。

示例

示例 #1 使用 headers_list() 的示例

<?php

/* setcookie() 会自行添加响应头 */
setcookie('foo', 'bar');

/* 定义一个自定义响应头
这将被大多数客户端忽略 */
header("Example-Test: foo");

/* 在我们的响应中指定纯文本内容 */
header('Content-Type: text/plain; charset=UTF-8');

/* 要发送哪些头信息? */
var_dump(headers_list());

?>

上面的示例将输出类似于以下内容

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"
}

注释

注意:

只有在使用支持它们的 SAPI 时,才能访问和输出头信息。

参见

添加注释

用户贡献的注释 3 个注释

arnold at jasny dot net
7 年前
此函数在您从命令行运行 PHP 时将不起作用。它将始终返回一个空数组。这在使用 PHPUnit 或 Codeception 测试项目时可能是一个问题。

要解决此问题,请安装 xdebug 扩展并在 CLI 上使用 `xdebug_get_headers`。

<?php
$headers
= php_sapi_name() === 'cli' ? xdebug_get_headers() : headers_list();
?>
匿名
11 年前
请注意,它不会返回状态头

<?php

header
('HTTP/1.1 301 Moved Permanently', true, 301);

header('foo: bar');
header('a: b');
header('colon less example');

print_r(headers_list());
?>

数组
(
[0] => X-Powered-By: PHP/5.4.7
[1] => foo: bar
[2] => a: b
)
SOLO2
12 年前
检查特定头信息是否已添加到列表中的函数

<?php

function header_sent($header) {
$headers = headers_list();
$header = trim($header,': ');
$result = false;

foreach (
$headers as $hdr) {
if (
stripos($hdr, $header) !== false) {
$result = true;
}
}

return
$result;
}

?>
To Top