解決PHP中的Cannot modify header information 問題
我就遇到這種問題,網上找到這個解決的方案,就收藏下
寫PHP的朋友們肯定遇到過這樣一個問題:通過header函式改變http協議頭的時候,會出現一個類似下面格式的warning:
複製程式碼 程式碼如下:
Warning: Cannot modify header information - headers already sent by
這是為什麼呢?因為在使用header函式之前,您不能輸出任何東西,包括用echo或var_dump等輸出函式的輸出,還有在<?php之前的空格。不過有的時候,我們並沒有輸出任何東西,卻還是會出現這個錯誤,這是因為我們的檔案包含了BOM簽名,我們必須把它去掉。下面我們就來討論這個問題。
請看測試程式碼:
複製程式碼 程式碼如下:
<?php
header("content-type:text/html;charset=utf-8");
die();
?>
這段程式碼就是簡單的`header一下,在<?php之前也沒有任何輸出,也沒有空格,但是網頁裡還是提示了Cannot modify header information的警告資訊。這說明,在<?php之前還有內容,只是編輯器沒有顯示出來。
我們用ultraEdit開啟這個檔案,切換到16進位制,可以看到,在文字的開頭,有EFBBBF,之後才是3C 3F 70 68 70 ( <?php ),說明,在<?php之前,確實存在著輸出資訊,因此,在修改header的時候,會得到警告資訊。
這個EFBBBF是什麼東西呢?它的名字叫BOM,Byte Order Mark,是在Windows下的一個約定,用於標記文字是否是Unicode。記事本程式就是通過這三個位元組來判斷檔案是ANSI還是Unicode。
知道了問題發生的原因,下面,我們想辦法把BOM去掉。用Dreamweaver開啟這個php頁面,然後進入頁面設定(按Ctrl+J),彈出以下視窗:
取消選擇“包括Unicode簽名(BOM)”,確定就可以了。現在,我們再用UltraEdit開啟看這個檔案的16進位制內容,如下圖
可以看到,現在BOM資訊已經沒有了,檔案直接以3C3F70開頭了。
最後,我們重新整理一下瀏覽器,發現現在已經沒有Warning提示了,問題解決。
-
如何理解Javascript的caller,callee,call,apply區別
在提到上述的概念之前,首先想說說javascript中函式的隱含引數:argumentsarguments該物件代表正在執行的函式和呼叫它的函式的引數。[function.]arguments[n]引數function:選項。當前正在執行的Function物件的名字。n:選項。要傳遞給Function物件的從0開始的引數值...
-
如何理解Javascript的caller,callee,call,apply區別
在提到上述的概念之前,首先想說說javascript中函式的隱含引數:argumentsarguments該物件代表正在執行的函式和呼叫它的函式的引數。[function.]arguments[n]引數function:選項。當前正在執行的Function物件的名字。n:選項。要傳遞給Function物件的從0開始的引數值...
-
在PHP中利用XML技術構造遠端服務
未來的Web將是以服務為中心的Web,XML_RPC標準使得編寫和應用服務變得非常簡單。本文介紹XML_RPC標準及其PHP實現,並通過例項示範瞭如何在PHP中開發XML_RPC服務和客戶程式。一、服務式Web從內容提供商所採用的簡單方法到UDDI(UniversalDescription,DiscoveryandInte...
-
JavaScript的課堂講解
本文主要內容:1.分析函式的四種呼叫形式2.弄清楚函式中this的意義3.明確構造函物件的過程4.學會使用上下文呼叫函式一、函式呼叫形式函式呼叫形式是最常見的形式,也是最好理解的形式。所謂函式形式就是一般宣告函式後直接呼叫即是。例如:複製程式碼程式碼如下://宣告...
相關文章
- 高中英語作文:My approach to difficulties in learning
- 英語高分作文:The importance of protecting the environment
- The Impact of Information Explosion高中英語作文
- The place of Science and Technology in Modern Life英語作文
- How Do My Parents Feel About My Education英語作文
- The importance of keep in a good mood英語作文
- My Happy Times During Winter Vacation國中英語作文
- 國中英語寫作範文:My Happy Times During Winter Vacation
- 八年級英語下冊Unit 6 An old man tried to move a Mountain period one說課稿
- 會考英語閱讀理解答案A report from the United Nations