headers_sent

(PHP 4, PHP 5, PHP 7)

headers_sent锟斤拷锟� HTTP 头锟角凤拷锟窖撅拷锟斤拷锟斤拷

说锟斤拷

headers_sent ([ string &$file [, int &$line ]] ) : bool

锟斤拷锟� HTTP 头锟角凤拷锟窖撅拷锟斤拷锟酵★拷

HTTP 头锟窖撅拷锟斤拷锟斤拷时锟斤拷锟斤拷锟睫凤拷通锟斤拷 header() 锟斤拷痈锟斤拷锟酵凤拷侄巍锟� 使锟矫此猴拷锟斤拷锟斤拷锟斤拷锟斤拷苑锟街� HTTP 头锟斤拷锟斤拷锟斤拷一锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟� 锟斤拷锟斤拷锟斤拷锟�锟斤拷

锟斤拷锟斤拷

file

锟斤拷锟斤拷锟斤拷锟剿匡拷选锟斤拷锟斤拷 file and line锟斤拷 headers_sent() 锟斤拷锟� PHP 锟侥硷拷锟斤拷锟斤拷锟斤拷 file 锟斤拷锟斤拷锟斤, 锟斤拷锟斤拷锟绞硷拷锟斤拷泻欧锟斤拷锟� line 锟斤拷锟斤拷锟斤。

line

锟斤拷锟斤拷锟绞硷拷锟斤拷泻拧锟�

锟斤拷锟斤拷值

HTTP 头未锟斤拷锟斤拷时锟斤拷headers_sent() 锟斤拷锟斤拷 FALSE锟斤拷锟斤拷锟津返伙拷 TRUE锟斤拷

锟斤拷锟斤拷

Example #1 使锟斤拷 headers_sent() 锟斤拷锟斤拷锟斤拷

<?php

// 没锟斤拷 HTTP 头锟酵凤拷锟斤拷一锟斤拷
if (!headers_sent()) {
    
header('Location: http://www.example.com/');
    exit;
}

// 使锟斤拷 file 锟斤拷 line 锟斤拷锟斤拷选锟斤拷锟斤拷锟斤拷锟�
// 注锟斤拷 $filename 锟斤拷 $linenum 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷使锟斤拷
// 锟斤拷锟皆诧拷要锟斤拷前为锟斤拷锟角革拷值
if (!headers_sent($filename$linenum)) {
    
header('Location: http://www.example.com/');
    exit;

// 锟斤拷锟叫匡拷锟斤拷锟斤拷锟斤拷锟斤触锟斤拷锟斤拷锟斤拷
} else {

    echo 
"Headers already sent in $filename on line $linenum\n" .
          
"Cannot redirect, for now please click this <a " .
          
"href=\"http://www.example.com\">link</a> instead\n";
    exit;
}

?>

注锟斤拷

Note:

锟斤拷锟斤拷头只锟斤拷锟斤拷SAPI支锟斤拷时锟矫碉拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷

锟轿硷拷

  • ob_start() - 锟斤拷锟斤拷锟斤拷锟斤拷苹锟斤拷锟�
  • trigger_error() - 锟斤拷锟斤拷一锟斤拷锟矫伙拷锟斤拷锟斤拷锟� error/warning/notice 锟斤拷息
  • headers_list() - 锟斤拷锟斤拷锟窖凤拷锟酵碉拷 HTTP 锟斤拷应头锟斤拷锟斤拷准锟斤拷锟斤拷锟酵的o拷
  • header() - 锟斤拷锟斤拷原锟斤拷 HTTP 头 锟斤拷锟叫革拷锟斤拷锟斤拷锟较革拷诘锟斤拷锟斤拷邸锟�