標籤:php
其實,出現這種情況一般都是因為程式修改過程中出現以下幾個方面的錯誤操作導致:
原因一、UTF8編碼和BOM衝突(最常見)
如果你登入後台出現類似Warning: Cannot modify header information – headers already sent by (output started at /www/wp-content/themes/pozhejun/function.php:1) in /www/wp-includes/pluggable.php on line 897
Warning: Cannot modify header information – headers already sent by (output started at /www/wp-content/themes/pozhejun/function.php:1) in /www/wp-login.php on line 21
這些php代碼錯誤,首先考慮是不是function.php、wp-login.php、pluggable.php 這三個PHP檔案的編碼出現了問題。一般很有可能是用txt檔案編輯過這幾個報錯的檔案導致UTF8編碼和BOM衝突。
解決方案:使用Notepad++、UltraEdit、DW等編輯器編輯檔案,在“修改”菜單裡面選擇“標題/編碼”,將檔案編碼修改為原本的gkb或者utf-8格式。當然你也可以把檔案另存新檔,選ANSI儲存。
原因二:程式檔案<?php之前或者之後有空格(最常見)
解決方案:無論是程式本身echo出來的、被include 進來的程式echo的還是php代碼之外的html存在空格它們統統都是輸出。所以,要檢查下出錯的fuction.php等檔案中的<?php..?>是不是因為空白格或者換行導致的,特別是include或者require的檔案。刪除空格就能夠解決,這也是最常見的報錯原因之一。
原因三:外掛程式相容問題(常見)
如果是安裝WordPress外掛程式或者自己寫的程式出現以上問題,除了以上兩種可能,還有可能是setcookie的問題。
解決辦法:在輸出內容之前,產生cookie,可以在程式的最上方加入函數 ob_start(); 把下面函數加到檔案的開頭。
<?php ob_start (); ?>
原因四:php.ini配置問題
解決辦法:開啟 php.ini 然後把 output_buffering 設為 on ,重啟appache即可。這種方法開啟了所有php程式的輸出緩衝,這樣做可能影響php執行效率,這取決於伺服器的效能和代碼的複雜度。
原因五:header後加exit()
解決方案:在header後加上exit();
header ("Location: xxx");
exit();
以上就是WordPress出現“Warning: Cannot modify header information – headers already sent by ……”這樣的錯誤的常見原因和解決方案,如果是後期運營過程中出現這種情況一般是檔案修改或者外掛程式不相容出現的問題,在解決這個問題之前要清楚出現問題的這段時間到底是修改了什麼,這樣才能快速的找到出現錯誤的最終原因,從而快速的解決問題。
本文出自 “劉博方的部落格” 部落格,請務必保留此出處http://liubofang.blog.51cto.com/11162557/1870666
如何解決PHP 出現Warning: Cannot modify header information錯誤?