PHP headers_sent() 函数用法及示例

PHP HTTP  参考手册

headers_sent() 函数检测 HTTP 头是否已经发送。

语法

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

定义和用法

检测 HTTP 头是否已经发送。
HTTP 头已经发送时,就无法通过 header() 添加更多头字段。 使用此函数起码可以防止 HTTP 头出错。另一个解决方案是用 输出缓冲。

返回值

 HTTP 头未发送时,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;
   }
?>

上面的示例将检查标头是否已发送,如果已发送,则显示一条消息,否则将发送标头

PHP HTTP  参考手册