SAE平台Warning:Cannot modify header information

1
Warning: Cannot modify header information - headers already sent by

此警告的产生原因是:调用header函数之前文件已有输出,例如:

1
2
3
echo' ';
header("Content-type:text/html; charset=utf-8");
echo'This is a Test';

在调用header设置编码之前已有空格输出,将会提示此警告。

解决方法也比较简单

在输出之前调用函数即可。或者修改PHP配置文件,开启output_buffering。


但是用SAE做开发时,会遇到非常诡异的问题,即使没有输出,也会有此警告产生,并且是在UTF8编码格式下的文件才会出现。这种时候就无法去修改配置文件解决此问题了。

后经查证,是由于UTF8编码下BOM问题,即UTF8文件有时候会在文件开头写入几个识别文件编码的字符。这种识别字符一般是隐藏的,需要借助工具才能去除。

解决方案

我们可以用DreamWeaver打开这个文件,CTR+J可以看到文件的属性,在“标题/编码 ”中可以看到此文件是否包含BOM,如果有,取消掉即可。

发表评论

电子邮件地址不会被公开。 必填项已用*标注