我认为我们大多数人都知道PHP中臭名昭着的“Headers already sent”错误。如果标题已经发送,我可以检查一下吗?
在尝试设置一些SESSION数据或类似数据之前,这样做会非常方便。
谢谢!
答案 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也可能是有意义的,它会返回所有已发送标头的数组。