温馨提示×

PHP HEADERS_SENT会怎样影响输出

PHP
小樊
81
2024-10-23 10:12:14
栏目: 编程语言

在 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,你可以安全地设置新的头部。

0