在 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 內容。