PHP headers_sent() 函数

定义和用法

headers_sent() 函数检查 HTTP 标头是否已被发送以及在哪里被发送。

如果报头已发送,则返回 true,否则返回 false。

语法

  1. headers_sent(file,line)
参数 描述
file,line 可选。 如果设置 fileline 参数,headers_sent() 会把输出开始的 PHP 源文件名和行号存入 file 和 line 变量中。

提示和注释

注释:一旦报头块已经发送,就不能使用 header() 函数 来发送其它的标头。使用此函数至少可以避免与 HTTP 标头有关的错误信息。

注释:可选的 fileline 参数是 PHP 4.3 中新加的。

例子

例子 1

  1. <?php
  2. // 如果报头未发送,则发送一个
  3. if (!headers_sent())
  4. {
  5. header("Location: http://www.baidu.com/");
  6. exit;
  7. }
  8. ?>
  9.  
  10. <html>
  11. <body>
  12.  
  13. ...
  14. ...

例子 2

使用可选的 file 和 line 参数:

  1. <?php
  2. // 传递 $file 和 $line,供日后使用
  3. // 不要预先为它们赋值
  4. if (!headers_sent($file, $line))
  5. {
  6. header("Location: http://www.baidu.com/");
  7. exit;
  8. // Trigger an error here
  9. }
  10. else
  11. {
  12. echo "Headers sent in $file on line $line";
  13. exit;
  14. }
  15. ?>
  16.  
  17. <html>
  18. <body>
  19.  
  20. ...
  21. ...