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

Ind*_*ial 29 php header

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

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

谢谢!

Rus*_*ias 42

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;
}
Run Code Online (Sandbox Code Playgroud)


rye*_*guy 8

是的,你可以使用headers_sent函数.

检查标头是否或已经发送到何处.

一旦已经发送了标题块,就不能使用header()函数添加任何标题行.使用此功能,您至少可以防止获取与HTTP标头相关的错误消息.另一种选择是使用输出缓冲.

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