2007年12月10日 星期一

《 PHP》天啊! 又是 Warning: Cannot add header information

惱人的 Warning: Cannot add header information - headers already sent by ....
這個標題是 Neo's Blog 大大下的,我也是發生問題之後,去 Google 打了 headers already sent by
找到的精闢解說。


有空再解釋原理及發生的原因,一般可以用 PHP 的 ob 系列函數來處理,但是比較簡單的方式也可以用打開 PHP Output buffer 的方式來解決。




這句話我也好期待,可惜文章久遠,可能大大忘記了。
因為我不是虛擬主機,所以我走了一個最快的解決方式(找 php.ini 開刀)
找到以下這行,進行修改如下:



output_buffering=Off


改成


output_buffering=On


重新啟動 Apache 就好了:)

在我的 Webserv 裡面預設的 php.ini 中,發現 output_buffering = 4096
將整段敘述 Copy 上來看起較快:

; - output_buffering = 4096 [Performance]
; Set a 4KB output buffer. Enabling output buffering typically results in less
; writes, and sometimes less packets sent on the wire, which can often lead to
; better performance. The gain this directive actually yields greatly depends
; on which Web server you're working with, and what kind of scripts you're using.

只說明了使用 4KB 這個不大不小的好處,並沒有說明 header information 的始然。

沒有留言:

張貼留言