Cannot modify header information的解決方法
很多人在架設WordPress時,常常換用新佈景或是一開始安裝時常常會碰到一個錯誤訊息「Cannot modify header information – headers already sent by」,通常遇到問題別擔心,Google一下會有很多答案的,這問題其實發生再轉向時,緩衝區出了些問題,只要開啟一下系統設定調整一下,就可以解決這個問題了。
這個問題全句警告訊息是:
Warning: Cannot modify header information – headers already sent by
其實解決方法很簡單,只要調整一下php.ini內的設定值就可以正常了,換句話說,就是系統本身有個設定值預設是未開啟,只要我們將他開啟就可以了。所以找到系統設定檔「php.ini」,建議使用「Notepad++」開啟,找到「output_buffering」並將他後面的值設定為「On」(啟動),當然也可以設定成「4096」或更高的數值(設定緩衝區大小),然後儲存並重新啟動Apache就可以了。
如果你是使用虛擬主機而遇到這樣的問題,建議可以先詢問主機商是否可以啟動這項函數?或者是說看可否透過.htaccess來調整這項設定數值(有些虛擬主機可以這樣調整)。另外,官方有另外一種是透過PHP函式「ob_start()」來解決,就是加在出問題的檔案語法前面,在結束的地方加上「ob_end_flush()」就可以了。您可以參考「剖析PHP中的輸出緩衝」這篇文章,裡面算講的蠻詳細的。