当前位置: 首页> 最新文章列表> 如何使用 header 函数并通过 headers_list() 查看当前设置的所有 header?

如何使用 header 函数并通过 headers_list() 查看当前设置的所有 header?

M66 2025-06-28

在 PHP 中,header() 函数是一个非常重要的工具,用于向客户端发送原始 HTTP 报文头。通过它,我们可以控制页面的缓存、重定向、内容类型等。与此同时,headers_list() 函数则可以帮助我们查看当前已经设置的所有 HTTP 头信息,这对于调试和理解程序行为非常有帮助。

本文将详细介绍如何使用 header()headers_list(),并通过代码示例帮助你掌握它们的用法。

1?? 使用 header() 函数

header() 函数的基本语法如下:

header(string $header, bool $replace = true, int $response_code = 0): void
  • $header:要发送的 header 内容,比如 Content-Type: application/json

  • $replace:是否替换前面同名的 header,默认为 true

  • $response_code:可选参数,用于设置 HTTP 响应状态码。

常见用法包括:

设置重定向

header('Location: https://m66.net/new-page.php');
exit;

这行代码会让浏览器重定向到 https://m66.net/new-page.php

设置内容类型

header('Content-Type: application/json');
echo json_encode(['status' => 'ok']);

这会告诉客户端,接下来的内容是 JSON 格式。

控制缓存

header('Cache-Control: no-cache, no-store, must-revalidate');
header('Pragma: no-cache');
header('Expires: 0');

这些 header 用于禁止缓存,确保用户每次访问都获取最新内容。

2?? 查看当前设置的所有 header

有时候我们在代码中多次调用 header(),但具体发送了哪些 header 呢?这时 headers_list() 就派上用场了。

示例代码

<?php
header('Content-Type: text/plain');
header('X-Custom-Header: CustomValue');
header('Location: https://m66.net/redirected');

$headers = headers_list();

echo "当前设置的 HTTP 头:\n";
foreach ($headers as $h) {
    echo $h . "\n";
}
?>

说明

  • 我们设置了三个 header。

  • 然后用 headers_list() 获取到当前所有待发送的 header,并逐行输出。

运行这个脚本后,你会看到类似这样的输出:

Content-Type: text/plain
X-Custom-Header: CustomValue
Location: https://m66.net/redirected

请注意:

  • 如果脚本已经输出了内容(如 echo),再调用 header() 会导致“header already sent”错误。

  • 所以,修改 header 时应确保它们在任何输出发生之前。