温馨提示×

PHP HEADERS_SENT如何处理

PHP
小樊
81
2024-10-23 10:45:16
栏目: 编程语言

在 PHP 中,当输出已经发送给浏览器时,试图再发送任何 HTTP 头部信息都会导致错误。为了避免这种情况,可以使用 headers_sent() 函数检查是否已经发送了头部信息。

headers_sent() 函数接受两个参数:第一个参数是文件名,第二个参数是行号。如果已经发送了头部信息,该函数将返回 true,否则返回 false

在发送任何 HTTP 头部信息之前,可以使用 headers_sent() 函数进行检查。如果已经发送了头部信息,可以采取适当的措施,例如显示错误消息或终止脚本执行。

以下是一个示例代码:

<?php
// 检查是否已经发送了头部信息
if (headers_sent($filename, $line)) {
    // 如果已经发送了头部信息,显示错误消息并终止脚本执行
    echo 'Headers already sent in ' . $filename . ' on line ' . $line;
    exit();
}

// 设置 HTTP 头部信息
header('Content-Type: text/html; charset=utf-8');
header('Cache-Control: no-cache, must-revalidate');
header('Pragma: no-cache');

// 输出 HTML 内容
echo '<!DOCTYPE html>';
echo '<html>';
echo '<head>';
echo '<title>Example Page</title>';
echo '</head>';
echo '<body>';
echo '<h1>Hello, World!</h1>';
echo '</body>';
echo '</html>';
?>

在上面的示例中,我们首先使用 headers_sent() 函数检查是否已经发送了头部信息。如果已经发送了头部信息,我们显示错误消息并终止脚本执行。否则,我们设置 HTTP 头部信息并输出 HTML 内容。

0