重要提示:output_buffering
已关闭,我已通过get_ini()
进行了检查,因此请不要回答迭代事项。
我有一个简单的PHP代码:
<?php
在第一步中我将发送一个标题,我在php开始标记之前也没有写任何内容,标题是第一步:
header('Content-type: text/html; charset=utf-8');
现在我想确保我的标题已被发送,所以我使用header_sent()函数
if(!headers_sent()) {
?><script type="text/javascript">alert('No headers have been sent')</script><?php
} else {
?><script type="text/javascript">alert('headers have been sent')</script><?php
}
?>
不幸的是,我不知道为什么我会遇到“没有标题已被发送”,而我希望标题已被发送。
答案 0 :(得分:2)
首次尝试输出正文数据时,标题会发送到Web服务器。一旦发生这种情况,您就无法再发送标头了。 headers_sent
的更合适的名称可能是do_i_still_have_the_chance_to_send_any_more_headers_now()
。如果headers_sent
为false
,您仍然可以使用header()
发送更多标头;如果它true
您无法再发送标题。如果headers_sent
为false
,则表示不会发送 的标头,也不会忽略之前的header
来电。
如果您想查看将发送的标头(或已经发送过),请参阅headers_list
。