当前位置: 移动技术网 > IT编程>开发语言>PHP > 浏览器预览PHP文件时顶部出现空白影响布局分析原因及解决办法

浏览器预览PHP文件时顶部出现空白影响布局分析原因及解决办法

2019年05月25日  | 移动技术网IT编程  | 我要评论

人鱼小姐之常青藤,东北搞笑二人转,洛克王国私服

在编写php文件过程中,发现在浏览器预览php文件时,顶部会出现一行空白,影响了页面的布局。

关于bom header的解释如下

通常情况下,使用windows系统自带的记事本程序编写网页程序,但在编写或修改php博客系统代码后,进行调试时总是会出现如同以下几点问题:

–不能登入或者不能登出;
–页顶出现一条空白;
–页顶出现错误警告;
–其它不正常的情况。

分析原因
由于使用utf-8编码,在编写或修改代码后都保存为utf-8编码格式。虽然现在几乎所有的文本编辑软件都可以显示并编辑utf-8编码的文件,但是很遗憾的是其中很多软件的表现并不理想。

类 似windows自带的记事本等软件,在保存一个以utf-8编码的文件时,会在文件开始的地方插入三个不可见的字符(_0xef _0xbb _0xbf,即bom——byte order mark)。它是一串隐藏的字符,用于让记事本等编辑器识别这个文件是否以utf-8编码。对于一般的文件,这样并不会产生什么麻烦。但对于 php来说,php在设计时就没有考虑bom的问题,不会忽略utf-8编码的文件开头bom的那三个字符,会把bom作为该文件开头正文的一部分。由于必须在<?或者<?php后面的代码才会作为php代码执行,所以将会造成在页面上输出这三个字符,显示效果就要看浏览器了,一般是一个空行或是一个乱码。由于在html一开头有这3个字符的存在,即使页面的 top padding 设置为0,也无法让整个网页紧贴浏览器顶部。由于受cookie送出机制的限制,在这些文件开头已经有bom的文件中,cookie无法送出(因为在 cookie送出前php已经送出了文件头),所以登入和登出功能失效。一切依赖cookie、session实现的功能全部无效。

解决办法

在编辑、更改任何文本文件时,请务必使用不会乱加bom的编辑器。linux下的编辑器应该都没有这个问题。windows下,请勿使用记事本等编辑器。推荐的编辑器是:
editplus 2.12版本以上;
emeditor;
ultraedit(需要取消‘添加bom'的相关选项);
dreamweaver(需要取消‘添加bom'的相关选项);
notepad(需要进行“转换为不带bom的utf-8”)等。

对于已经添加了bom的文件,要取消的话,可以用以上编辑器另存一次。(editplus需要先另存为gb,再另存为utf-8。dreamweaver在”页面属性“的 “包含unicode 签名(bom)”取消即可)

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网