PHP HEADERS_SENT 錯誤通常是由于在向客戶端發送 HTTP 響應頭之前,已經輸出了任何 HTML、XML 或其他類型的數據。HTTP 響應頭必須在發送任何內容之前發送,因此,當 PHP 檢測到已經發送了響應頭時,它會拋出一個 HEADERS_SENT 錯誤。
以下是一些可能導致 HEADERS_SENT 錯誤的原因:
echo "Hello, World!";
header("Content-Type: text/html");
ob_start();
echo "Hello, World!";
header("Content-Type: text/html");
ob_end_flush();
$handle = fopen("http://example.com", "r");
header("Content-Type: text/html");
要解決 HEADERS_SENT 錯誤,需要確保在調用 header() 函數之前不輸出任何內容。如果需要在輸出內容后更改響應頭,可以使用輸出控制函數(如 ob_clean() 和 ob_end_clean())來清除輸出緩沖區中的內容,然后再發送響應頭。