在 PHP 中,如果已经发送了 HTTP 头部(headers),那么你将不能再向客户端输出任何内容
当使用 headers_sent()
函数检查是否已经发送了头部时,它会返回一个布尔值。如果返回 true
,则表示已经发送了头部;如果返回 false
,则表示尚未发送头部。
例如:
<?php
// 输出一些内容
echo "Hello, World!";
// 检查是否已经发送了头部
if (headers_sent()) {
// 如果已经发送了头部,则输出错误信息
echo "Headers already sent in " . __FILE__ . " on line " . __LINE__ . ".";
} else {
// 如果尚未发送头部,则可以安全地设置新的头部
header("Content-Type: text/html; charset=utf-8");
}
?>
在这个例子中,尝试输出 “Hello, World!” 之后,headers_sent()
函数会检测到已经发送了头部,因此会输出错误信息 “Headers already sent in…”。如果将 echo
语句注释掉,那么 headers_sent()
函数将返回 false
,你可以安全地设置新的头部。