header()
函数用于发送一个原始的 HTTP 报头。以下是一些常见的用法:
可以使用 header()
函数来重定向用户到另一个页面。
<?php
// 重定向到另一个页面
header("Location: https://www.cnyouyue.com");
exit; // 退出脚本,防止在重定向后继续执行下面的代码
?>
2. 设置内容类型
可以设置页面的内容类型,例如 HTML、JSON、XML 等。
<?php
// 设置内容类型为 HTML
header("Content-Type: text/html; charset=UTF-8");
// 设置内容类型为 JSON
header("Content-Type: application/json");
// 设置内容类型为 XML
header("Content-Type: application/xml");
?>
3. 设置缓存控制
可以控制浏览器是否缓存当前页面。
<?php
// 禁止浏览器缓存当前页面
header("Cache-Control: no-cache, no-store, must-revalidate");
header("Pragma: no-cache");
header("Expires: 0");
?>
4. 设置自定义HTTP头信息
可以设置自定义的HTTP头信息。
<?php
// 设置自定义HTTP头信息
header("X-Frame-Options: DENY"); // 禁止嵌套在框架中
header("X-Content-Type-Options: nosniff"); // 防止MIME类型嗅探
?>
5. 设置Cookie
可以使用 header()
函数来设置 Cookie。
<?php
// 设置一个Cookie
header("Set-Cookie: name=value; expires=Tue 21 Oct 2025 07:28:00 GMT; path=/; domain=cnyouyue.com; secure; httponly");
?>
6. 设置身份验证
可以使用 header()
函数来请求客户端进行身份验证。
<?php
// 请求客户端进行身份验证
header("WWW-Authenticate: Basic realm='Restricted Area'");
header("HTTP/1.0 401 Unauthorized");
echo "您需要进行身份验证才能访问此页面。";
exit;
?>
7. 设置状态码
可以使用 header()
函数来设置 HTTP 状态码。
<?php
// 设置状态码为 404 Not Found
header("HTTP/1.1 404 Not Found");
?>
注意事项
header()
函数必须在任何实际的输出(包括 HTML 标签、echo 语句等)之前调用,否则会报错 "headers already sent"。如果需要发送多个头信息,可以多次调用
header()
函数,或者使用headers_list()
函数来查看已经发送的头信息。在发送头信息后,建议使用
exit
或die
函数来终止脚本执行,尤其是在重定向时,以防止后续代码被执行。