为什么BOM会导致警告"标题已经发送"?

时间:2014-05-19 10:14:43

标签: php warnings configuration-files byte-order-mark

请注意,这不是重复。看似重复的问题都可以通过“只需在没有BOM的情况下保存!”来解答。然而,我的问题是为什么?

如果我无意中用BOM保存了一个PHP文件,我尝试从PHP内部发送一个标题,我得到了

  

警告:无法修改标题信息 - 已经在 file.php 1 上发送的文件(由file.php:1开始输出)

你知道例程。当然,在没有BOM的情况下保存文件时也不会发生这种情况。

但是,这里有一个棘手的部分:这个警告不会到处发生!在我的情况下,当我从http://localhost/打开文件时不会发生这种情况,但是当我将文件上传到我的网站并从那里打开文件时就会发生这种情况。

那么,有什么区别?我的本地Apache或网站的Apache是​​否有错误?将问题升级到最新版本是否可以解决问题?或者它可能是某个地方的配置问题,可以通过编辑ini文件来解决吗?

1 个答案:

答案 0 :(得分:0)

最有可能的是,您的本地主持人已启用implicit output buffering

此外,detect_unicode可能值得一试。