模板文件生成html文件之后會在body開頭處加入一個(gè)可見的控制符,導(dǎo)致頁面頭部會出現(xiàn)一個(gè)空白行。原因是頁面的編碼是UTF-8 + BOM。
這種編碼方式一般會在windows操作系統(tǒng)中出現(xiàn),比如WINDOWS自帶的記事本等軟件,在保存一個(gè)以UTF-8編碼的文件時(shí),會在文件開始的地方插入三個(gè)不可見的字符(0xEF 0xBB 0xBF,即BOM)。它是一串隱藏的字符,用于讓記事本等編輯器識別這個(gè)文件是否以UTF-8編碼。對于一般的文件,這樣并不會產(chǎn)生什么麻煩。但對于 PHP來說,BOM是個(gè)大麻煩。因?yàn)镻HP并不會忽略BOM,所以在讀取、包含或者引用這些文件時(shí),會把BOM作為該文件開頭正文的一部分。根據(jù)嵌入式語言的特點(diǎn),這串字符將被直接執(zhí)行(顯示)出來。由此造成即使頁面的 top padding 設(shè)置為0,也無法讓整個(gè)網(wǎng)頁緊貼瀏覽器頂部,因?yàn)樵趆tml一開頭有這3個(gè)隱藏字符!
遇到這種問題的解決方法就是用Editplus 2.12版本以上編輯器或者 EmEditor或者 UltraEdit(需要取消‘添加BOM’的相關(guān)選項(xiàng))或者 Dreamweaver(需要取消‘添加BOM’的相關(guān)選項(xiàng))重新保存一下utf-8格式的文檔!