PHP分隔符后的空白


Whitespace after PHP delimiters

在我的网站测试期间,我注意到我多次收到此错误:

警告:无法修改报头信息-报头已经由(输出开始于/home/example/public_html/file.php:100)

当我检查这个错误时(在SO上搜索),我发现?>分隔符之后的空白行导致了这个问题。

我的问题是:为什么PHP分隔符后的空格在没有更多代码时导致此错误?当没有更多的内容,只有一个PHP结束分隔符时,文件不应该停止读取吗?

  • 我知道?>分隔符后的空白会导致错误,这不是我的问题;因此不涉及重复问题。

除PHP以外的任何内容都被解释为HTML并输出到浏览器,因此?>后面的空格被发送到浏览器。

你不能再重定向后,你已经发送了任何到浏览器,无论是一个显式的头,或者只是一些HTML将有一个隐式的HTTP头。

这意味着您正在尝试更改标题,但您已经有了输出数据。你不能输出一些东西,然后改变标题。如果你在SO上搜索,你应该找到了这篇文章:如何修复PHP中的" Headers already sent "错误。

说明出现错误的原因以及应该如何修复。