如何检查标头是否已在 PHP 中发送

2022-08-30 12:54:58

我想我们大多数人都知道PHP中臭名昭着的“标头已发送”错误。我可以以某种方式检查标头是否已发送吗?

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

谢谢!


答案 1

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;
}

答案 2

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

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

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

headers_list也可能与此相关,它返回已发送的所有标头的数组。


推荐