php 检测 HTTP 头是否已发送的方法
墨初 后端开发 931阅读
在多人协同搞一个php项目时,有时候不确实页面的HTTP头是否已发送,就需要判断一下,如果HTTP头没有发送过就可以发送一次,而PHP脚本也提供一个判断HTTP头是否已发送的函数 headers_sent().
php headers_sent() 函数介绍
headers_sent():检测HTTP头是否已发送,如果已发送返回 TRUE ,如未发送返回 FALSE
语法:
headers_sent ($file = ? , &$line = ? )
参数:
若设置了可选参数 file 和 line,则 headers_sent() 会把 php 文件名放在 file 变量里,输出开始行号放在 line 变量里。
file:php文件名
line:输出开始的行号
php 判断http头是否已发送的方法
例1:php 判断是否定义了页面的编码
if (!headers_sent()) { header('Content-type: text/html; charset=utf-8'); }
例2:php 判断是否已发送HTTP头的方法
header('content-type:text/html;charset=utf-8'); echo 'feiniaomy.com<br>'; ob_end_flush(); if(headers_sent()){ echo 'HTTP头已发送!'; }else{ echo 'HTTP头未发送!'; }
例3:headers_sent() 使用参数的方法
header('content-type:text/html;charset=utf-8'); echo 'feiniaomy.com<br>'; ob_end_flush(); if (!headers_sent($file, $line)) { header('content-type:text/html;charset=utf-8'); exit; } else { // 很有可能在这里触发错误 echo $file; echo '<br/>'; echo $line; exit; }