headers_sent 检测 HTTP 头是否已经发送
发表日期:2021-07-01 08:56:41 | 来源: | | 浏览(842) 分类:网络 函数
headers_sent
(PHP 4, PHP 5, PHP 7, PHP 8)
headers_sent — 检测 HTTP 头是否已经发送
说明
headers_sent(string
&$file
= ?, int &$line
= ?): bool检测 HTTP 头是否已经发送。
HTTP 头已经发送时,就无法通过 header() 添加更多头字段。 使用此函数起码可以防止 HTTP 头出错。另一个解决方案是用 输出缓冲。
参数
-
file
-
若设置了可选参数
file
andline
, headers_sent() 会把 PHP 文件名放在file
变量里, 输出开始的行号放在line
变量里。 -
line
-
输出开始的行号。
返回值
HTTP 头未发送时,headers_sent() 返回 false
,否则返回 true
。
范例
示例 #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; } ?>
注释
注意:
数据头只会在SAPI支持时得到处理和输出。
参见
- ob_start() - 打开输出控制缓冲
- trigger_error() - 产生一个用户级别的 error/warning/notice 信息
- headers_list() - 返回已发送的 HTTP 响应头(或准备发送的)
- header() - 发送原生 HTTP 头 中有更多相关细节的讨论。
- PHP(0)
- PHP杂项(34)
- PHP基础-李炎恢系列课程(20)
- 中文函数手册(0)
- 错误处理 函数(13)
- OPcache 函数(6)
- PHP 选项/信息 函数(54)
- Zip 函数(10)
- Hash 函数(15)
- OpenSSL 函数(63)
- Date/Time 函数(51)
- 目录函数(9)
- Fileinfo 函数(6)
- iconv 函数(11)
- 文件系统函数(81)
- 多字节字符串 函数(57)
- GD 和图像处理 函数(114)
- 可交换图像信息(5)
- Math 函数(50)
- 程序执行函数(11)
- PCNTL 函数(23)
- JSON 函数(4)
- SPL 函数(15)
- URL 函数(10)
- cURL 函数(32)
- 网络 函数(33)
- checkdnsrr 给指定的主机(域名)或者IP地址做DNS通信检查(0)
- closelog 关闭系统日志链接(0)
- dns_check_record 别名 checkdnsrr()(0)
- dns_get_mx 别名 getmxrr()(0)
- dns_get_record 获取指定主机的DNS记录(0)
- fsockopen 打开一个网络连接或者一个Unix套接字连接(0)
- gethostbyaddr 获取指定的IP地址对应的主机名(0)
- gethostbyname 返回主机名对应的 IPv4地址。(0)
- gethostbynamel 获取互联网主机名对应的 IPv4 地址列表(0)
- gethostname 获取主机名(0)
- getmxrr 获取互联网主机名对应的 MX 记录(0)
- getprotobyname Get protocol number associated with protocol name(0)
- getprotobynumber Get protocol name associated with protocol number(0)
- getservbyname 获取互联网服务协议对应的端口(0)
- getservbyport Get Internet service which corresponds to port and protocol(0)
- header_register_callback 调用一个 header 函数(0)
- header_remove 删除之前设置的 HTTP 头(0)
- header 发送原生 HTTP 头(0)
- headers_list 返回已发送的 HTTP 响应头(或准备发送的)(0)
- headers_sent 检测 HTTP 头是否已经发送(0)
- http_response_code 获取/设置响应的 HTTP 状态码(0)
- inet_ntop Converts a packed internet address to a human readable representation(0)
- inet_pton Converts a human readable IP address to its packed in_addr representation(0)
- ip2long 将 IPV4 的字符串互联网协议转换成长整型数字(0)
- long2ip 将长整型转化为字符串形式带点的互联网标准格式地址(IPV4)(0)
- openlog Open connection to system logger(0)
- pfsockopen 打开一个持久的网络连接或者Unix套接字连接。(0)
- setcookie 发送 Cookie(0)
- setrawcookie 发送未经 URL 编码的 cookie(0)
- socket_get_status 别名 stream_get_meta_data()(0)
- socket_set_blocking 别名 stream_set_blocking()(0)
- socket_set_timeout 别名 stream_set_timeout()(0)
- syslog Generate a system log message(0)
- FTP 函数(36)
- Session 函数(23)
- PCRE 函数(11)
- PCRE 正则语法(19)
- 数组 函数(81)
- 类/对象 函数(18)
- 函数处理 函数(13)
- 变量处理 函数(37)
- SimpleXML 函数(3)
- 杂项 函数(31)
- 字符串 函数(101)