为什么当我';在PHP中,我试图在不发送任何输出的情况下发送头,它告诉我已经发送了头


Why when I'm trying to send headers without sending any output before in PHP it tells me the headers had already been sent?

所以我试图用以下代码更改PHP中的头:

header("HTTP/1.0 404 Not Found");

我收到以下错误消息:

无法修改标头信息-标头已由发送(输出从路径''index.php:1)启动

所以我读过这个错误,我发现它的发生是因为在我尝试更改标题之前已经发送了输出。问题是它告诉我输出是在index.php的第1行发送的,但该文件的第1行将是:

<?php

我已经检查过了,在<之前没有空白字符。我甚至试图将文件的第一行更改为:

<?php header("HTTP/1.0 404 Not Found");

然而,我仍然会犯同样的错误。

为什么会发生这种情况,我该如何解决?

我可能与BOM相关。这与您使用的编辑器以及您保存的编码有关。请检查PHP文件中的UTF-8 BOM签名

编辑:

请实际检查此答案。如何修复";标头已发送";PHP出错。。太棒了。

我不确定是什么导致了这个问题,但最终在我更改了"php.ini"(安装PDO)并重新启动服务器后,我成功地通过php更改了头。

相关文章: