哈希空间 Ctrl + F 进行搜索
首页 php手册中文版 CSS中文手册 哈希文档 Markdown在线工具

PHP headers 组件

headers_sent

(PHP 4, PHP 5, PHP 7, PHP 8)

headers_sent检测消息头是否已经发送

说明

headers_sent(string &$filename = null, int &$line = null): bool

检测消息头是否已经发送。

消息头已经发送时,就无法通过 header() 添加更多头字段。使用此函数起码可以防止收到跟消息头相关的错误。另一个解决方案是用输出缓冲

参数

filename

若设置了可选参数 filenamelineheaders_sent() 会把 PHP 文件名放在 filename 变量里,输出开始的行号放在 line 变量里。

line

输出开始的行号。

返回值

消息头未发送时,headers_sent() 返回 false,否则返回 true

范例

示例 #1 使用 headers_sent() 的例子

<?php

// 没有消息头就发送一个
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;
}

?>

注释

注意:

数据头只会在SAPI支持时得到处理和输出。

参见

打开 哈希空间 微信小程序中查看更佳