headers_sent() 函數檢測 HTTP 頭是否已經發(fā)送。
bool headers_sent ([ string &$file [, int &$line ]] )
檢測 HTTP 頭是否已經發(fā)送。
HTTP 頭已經發(fā)送時,就無法通過 header() 添加更多頭字段。 使用此函數起碼可以防止 HTTP 頭出錯。另一個解決方案是用 輸出緩沖。
HTTP 頭未發(fā)送時,headers_sent() 返回 FALSE,否則返回 TRUE。
| 序號 | 參數和說明 |
|---|---|
| 1 | file 若設置了可選參數 file 和 line, headers_sent() 會把 PHP 文件名放在 file 變量里, 輸出開始的行號放在 line 變量里。 |
| 2 | line 輸出開始的行號。 |
試試下面的實例
<?php
if (!headers_sent()) {
header('Location: /');
exit;
}
if (!headers_sent($filename, $linenum)) {
header('Location: /');
exit;
} else {
echo "Headers already sent in $filename on line $linenum\n" .
"Cannot redirect, for now please click this <a " .
"href = \"\">link</a> instead\n";
exit;
}
?>上面的示例將檢查標頭是否已發(fā)送,如果已發(fā)送,則顯示一條消息,否則將發(fā)送標頭