溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

瀏覽器預(yù)覽PHP文件時頂部出現(xiàn)空白影響布局怎么辦

發(fā)布時間:2021-10-18 09:33:51 來源:億速云 閱讀:110 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下瀏覽器預(yù)覽PHP文件時頂部出現(xiàn)空白影響布局怎么辦,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

在編寫PHP文件過程中,發(fā)現(xiàn)在瀏覽器預(yù)覽PHP文件時,頂部會出現(xiàn)一行空白,影響了頁面的布局。

關(guān)于BOM header的解釋如下

通常情況下,使用Windows系統(tǒng)自帶的記事本程序編寫網(wǎng)頁程序,但在編寫或修改php博客系統(tǒng)代碼后,進行調(diào)試時總是會出現(xiàn)如同以下幾點問題:

–不能登入或者不能登出;
–頁頂出現(xiàn)一條空白;
–頁頂出現(xiàn)錯誤警告;
–其它不正常的情況。

分析原因
由于使用UTF-8編碼,在編寫或修改代碼后都保存為utf-8編碼格式。雖然現(xiàn)在幾乎所有的文本編輯軟件都可以顯示并編輯UTF-8編碼的文件,但是很遺憾的是其中很多軟件的表現(xiàn)并不理想。

類 似WINDOWS自帶的記事本等軟件,在保存一個以UTF-8編碼的文件時,會在文件開始的地方插入三個不可見的字符(_0xEF _0xBB _0xBF,即BOM——Byte Order Mark)。它是一串隱藏的字符,用于讓記事本等編輯器識別這個文件是否以UTF-8編碼。對于一般的文件,這樣并不會產(chǎn)生什么麻煩。但對于 PHP來說,PHP在設(shè)計時就沒有考慮BOM的問題,不會忽略UTF-8編碼的文件開頭BOM的那三個字符,會把BOM作為該文件開頭正文的一部分。由于必須在<?或者<?php后面的代碼才會作為PHP代碼執(zhí)行,所以將會造成在頁面上輸出這三個字符,顯示效果就要看瀏覽器了,一般是一個空行或是一個亂碼。由于在html一開頭有這3個字符的存在,即使頁面的 top padding 設(shè)置為0,也無法讓整個網(wǎng)頁緊貼瀏覽器頂部。由于受COOKIE送出機制的限制,在這些文件開頭已經(jīng)有BOM的文件中,COOKIE無法送出(因為在 COOKIE送出前PHP已經(jīng)送出了文件頭),所以登入和登出功能失效。一切依賴COOKIE、SESSION實現(xiàn)的功能全部無效。

解決辦法

在編輯、更改任何文本文件時,請務(wù)必使用不會亂加BOM的編輯器。Linux下的編輯器應(yīng)該都沒有這個問題。WINDOWS下,請勿使用記事本等編輯器。推薦的編輯器是:
Editplus 2.12版本以上;
EmEditor;
UltraEdit(需要取消‘添加BOM'的相關(guān)選項);
Dreamweaver(需要取消‘添加BOM'的相關(guān)選項);
Notepad(需要進行“轉(zhuǎn)換為不帶BOM的UTF-8”)等。

對于已經(jīng)添加了BOM的文件,要取消的話,可以用以上編輯器另存一次。(Editplus需要先另存為gb,再另存為UTF-8。Dreamweaver在”頁面屬性“的 “包含Unicode 簽名(BOM)”取消即可)

以上是“瀏覽器預(yù)覽PHP文件時頂部出現(xiàn)空白影響布局怎么辦”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI