摘要:[PHP] 数据导出CSV Excel header()问题
前几天在写另一套系统的CSV档导出时,遇到一个以前遇到的问题;由于系统是新装的,因此PHP、MySQL、Apache等的设定都还是默认,所以有些功能还没办法正常使用。
当我要进行导出测试时,出现下列错误消息:Warning: Cannot modify header information - headers already sent by (output started at C:AppServwwwmypagemypage.php:21) in C:AppServwwwmypagesystemoutputCSVorderform.php on line 15
Warning: Cannot modify header information - headers already sent by (output started at C:AppServwwwmypageincludeconfig.php:21) in C:AppServwwwmypagesystemoutputCSVorderform.php on line 16
照字面上的翻译就是我的header重复调用了。既然我要做导出,我就必须要再声明一次header(),但是又不一定真的写在页首(或许可以,但我不会)。于是上网查了一下数据(其实很简单,把错误资讯“Cannot modify header information - headers already sent by ”贴到google按Enter就一堆答案,而这篇文章也将会成为茫茫答海之一 :p )
解法很简单,进入php.ini后搜寻一个output_buffering的参数设定,将“Off”改成“On”,简单来说,这个设定你可以选择开启或是直接限制他的大小,修改完后restart Apache就可以了。
*Note:我是在Windows XP SP3下进行测试,所以在php.ini是在C:WINDOWSphp.ini,至于On的“O”是大写小写,应该是视系统而定,在WINDOWS下是不分大小写(测试OK!),但是在Linux下小弟就不确定了(Linux大小写视为不同),因小弟手边目前没有Linux的系统还请有经验的前辈分享一下^^"。
Keyword: "header() problem of export files to CSV, EXCEL", "export file CSV header", "headers already send by"
相关网页: [PHP] 数据导出CSV Excel