PHP header()

2025年3月17日 | 阅读 3 分钟

header() 是 PHP 中一个预定义的网络函数,它向客户端发送原始 HTTP 标头。关于 header() 函数需要注意的一个重要点是,它必须在发送任何实际输出之前被调用。

header() 函数以原始形式向客户端或浏览器发送 HTTP 标头。在发送任何其他输出之前,HTTP 函数会操作 Web 服务器发送给客户端或浏览器信息。

语法

参数

header() 函数接受三个参数,下面将详细讨论这些参数。

$header (必需)

header 参数包含要发送的标头字符串。此函数有两种特殊标头调用。

第一个标头以 "HTTP/" 字符串开头,用于指定要发送的 HTTP 状态码。

第二个特殊情况是标头以 "Location:" 开头。它不仅将标头发送回浏览器,而且还会向浏览器提供一个重定向 (302) 状态码,除非已经设置了 201 或 3xx 状态码。

$replace (可选)

此参数用于指定是替换之前同类型的标头还是添加另一个同类型的标头。$replace 是一个布尔值类型的可选参数。

默认值为TRUE,表示替换之前的同类型标头。但是,如果将 FALSE 作为第二个参数传递,则可以绑定多个同类型的标头。

http_response_code (可选)

$http_response_code 是一个可选参数,它强制将 HTTP 响应代码设置为指定值。

注意:如果标头不为空,则 http_response_code 参数会生效。

返回值

PHP header() 函数不返回任何值。

变化

PHP 5.1.2 版本之后,此函数停止发送多个标头以防止标头注入攻击。它一次只允许一个标头。

用途

  • 它会改变页面位置。
  • 它设置时区。
  • 它发送 STOP 状态。
  • 此函数设置缓存控制。
  • 它启动强制下载。

示例

通过以下示例,您可以了解 header() 函数在运行时环境中的实际工作原理:

示例 1:重定向浏览器

以下代码会将您的用户重定向到另一个页面。

输出

它将重定向到上面程序中 header() 函数给出的新 URL 位置,即 www.javatpoint.com。如果在 header() 之后编写了任何代码行,它将不会被执行。

PHP header()

示例 2:重定向间隔

以下代码将在10 秒后将您的用户重定向到另一个页面。

输出

The output will be same as the example 1, but it will take 10 seconds to load.

注意:如果在 header() 函数之后编写了任何代码行,它将不会被执行。

示例 3:不缓存页面

使用以下代码,您可以防止浏览器缓存页面。

输出

Hello Javatpoint!
Array ( 
[0] => X-Powered-By: PHP/7.3.13 
[1] => Expires: Tue, 03 March 2001 04:50:34 GMT 
[2] => Cache-Control: no-cache 
[3] => Pragma: no-cache 
)

绝对 URI

某些旧客户端需要绝对 URI,其中包括主机名、方案和绝对路径,而大多数现代客户端接受相对 URI 作为 Location 的参数。要创建绝对 URI,可以使用 $SERVER['PHP_SELF']$SERVER['HTTP_HOST'] 和 dirname()。

示例 4

创建两个 php 文件,一个包含 header 文件代码,另一个用于在浏览器中重定向到新页面。

headercheck.php

welcome.php

输出

PHP header()
下一个主题PHP unset() 函数