在 PHP 中,如果已經(jīng)發(fā)送了 HTTP 頭部(headers),那么你將不能再向客戶端輸出任何內(nèi)容
當(dāng)使用 headers_sent()
函數(shù)檢查是否已經(jīng)發(fā)送了頭部時(shí),它會(huì)返回一個(gè)布爾值。如果返回 true
,則表示已經(jīng)發(fā)送了頭部;如果返回 false
,則表示尚未發(fā)送頭部。
例如:
<?php
// 輸出一些內(nèi)容
echo "Hello, World!";
// 檢查是否已經(jīng)發(fā)送了頭部
if (headers_sent()) {
// 如果已經(jīng)發(fā)送了頭部,則輸出錯(cuò)誤信息
echo "Headers already sent in " . __FILE__ . " on line " . __LINE__ . ".";
} else {
// 如果尚未發(fā)送頭部,則可以安全地設(shè)置新的頭部
header("Content-Type: text/html; charset=utf-8");
}
?>
在這個(gè)例子中,嘗試輸出 “Hello, World!” 之后,headers_sent()
函數(shù)會(huì)檢測(cè)到已經(jīng)發(fā)送了頭部,因此會(huì)輸出錯(cuò)誤信息 “Headers already sent in…”。如果將 echo
語(yǔ)句注釋掉,那么 headers_sent()
函數(shù)將返回 false
,你可以安全地設(shè)置新的頭部。