PHP HEADERS_SENT如何處理

PHP
小樊
82
2024-10-23 10:45:16
欄目: 編程語言

在 PHP 中,當(dāng)輸出已經(jīng)發(fā)送給瀏覽器時(shí),試圖再發(fā)送任何 HTTP 頭部信息都會(huì)導(dǎo)致錯(cuò)誤。為了避免這種情況,可以使用 headers_sent() 函數(shù)檢查是否已經(jīng)發(fā)送了頭部信息。

headers_sent() 函數(shù)接受兩個(gè)參數(shù):第一個(gè)參數(shù)是文件名,第二個(gè)參數(shù)是行號(hào)。如果已經(jīng)發(fā)送了頭部信息,該函數(shù)將返回 true,否則返回 false

在發(fā)送任何 HTTP 頭部信息之前,可以使用 headers_sent() 函數(shù)進(jìn)行檢查。如果已經(jīng)發(fā)送了頭部信息,可以采取適當(dāng)?shù)拇胧顼@示錯(cuò)誤消息或終止腳本執(zhí)行。

以下是一個(gè)示例代碼:

<?php
// 檢查是否已經(jīng)發(fā)送了頭部信息
if (headers_sent($filename, $line)) {
    // 如果已經(jīng)發(fā)送了頭部信息,顯示錯(cuò)誤消息并終止腳本執(zhí)行
    echo 'Headers already sent in ' . $filename . ' on line ' . $line;
    exit();
}

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

// 輸出 HTML 內(nèi)容
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() 函數(shù)檢查是否已經(jīng)發(fā)送了頭部信息。如果已經(jīng)發(fā)送了頭部信息,我們顯示錯(cuò)誤消息并終止腳本執(zhí)行。否則,我們?cè)O(shè)置 HTTP 頭部信息并輸出 HTML 內(nèi)容。

0