要避免在 PHP 中發(fā)送 HTTP 頭部,您可以采取以下措施:
if (!headers_sent()) {
header('Content-Type: text/html; charset=utf-8');
} else {
echo 'Headers already sent';
}
避免在輸出任何內(nèi)容之前調(diào)用 header()
函數(shù)。確保所有輸出(包括空格、換行符和 PHP 標(biāo)簽)都在調(diào)用 header()
函數(shù)之前完成。
如果您的腳本輸出任何內(nèi)容(例如錯(cuò)誤消息或調(diào)試信息),請(qǐng)確保在調(diào)用 header()
函數(shù)之前刪除所有輸出。您可以使用 ob_start()
和 ob_clean()
函數(shù)來實(shí)現(xiàn):
ob_start(); // 開始緩沖區(qū)
// 輸出內(nèi)容
$output = ob_get_clean(); // 獲取緩沖區(qū)內(nèi)容并清除緩沖區(qū)
if (!headers_sent()) {
header('Content-Type: text/html; charset=utf-8');
echo $output;
} else {
echo 'Headers already sent';
}
請(qǐng)注意,一旦 HTTP 頭部發(fā)送,就無法撤銷。因此,務(wù)必確保在調(diào)用 header()
函數(shù)之前完成所有輸出。