如何检查Headers是否已经用PHP发送

时间:2010-05-12 16:10:14

标签: php header

我认为我们大多数人都知道PHP中臭名昭着的“Headers already sent”错误。如果标题已经发送,我可以检查一下吗?

在尝试设置一些SESSION数据或类似数据之前,这样做会非常方便。

谢谢!

2 个答案:

答案 0 :(得分:38)

PHP有一个函数headers_sent(),它允许您在执行任何操作之前检查标头是否已经发送出去。以下是在代码中使用该函数的方法:

if(headers_sent())
{ //if headers already sent out print some message.
echo "Please go to yahoo.com";
}
else{
//send the user automatically to test.php
header('Location: http://yahoo.com');
exit;
}

答案 1 :(得分:7)

是的,您可以使用headers_sent功能。

  

检查标头是否或位于何处   发送。

     

您无法再添加标题行   使用header()函数一次   标题块已被发送。   使用此功能至少可以   防止获取HTTP标头相关   错误消息。另一种选择是   使用输出缓冲。

headers_list也可能是有意义的,它会返回所有已发送标头的数组。