在编写php文件过程中,发现在浏览器预览php文件时,顶部会出现一行空白,影响了页面的布局。
关于bom header的解释如下:
通常情况下,使用windows系统自带的记事本程序编写网页程序,但在编写海底两万里每章概括或修改php博客系统代码后,进行调试时总是会出现如同以下几点问题:
–不能登入或者不能登出;
–页顶出现一条空白;
–页顶出现错误警告;
–其它不正常的情况。
分析原因:
由于使用utf-8编码,在编写或修改代码后都保存为utf-8编码格式。虽然现在几乎所有的文本编辑软件都可以显示并编辑utf-8编码的文件,但是很遗憾的是其中很多软件的表现并不理想。
类 似windows自带的记事本等软件,在保存一个以utf-8编码的文件时,会在文件开始的地方插入三个不可见的字符(_0xef _0xbb _0xbf,即bom——byte order mar警句大全k)。它是一串隐藏的字符,用于让记事本等编辑器识别这个文件是否以utf-8编码。对于一般的文件,这样并不会产生什么麻烦。但对于 php来说,php在设计时就没有考虑bom的问题,不会忽略utf-8编码的文件开头bom的那三个字符,会把bom作为该文件开头正文的一部分。由于必须在<?或者<?php后面的代码才会作为php代码执行,所以将会造成在页面上输出这三个字符,显示效果就要看浏览器了,一般是一个空行或是一个乱码。由于在html一开头有这3个字符的存在,即使页面的 top padding 设置为0,也无法让整个网页紧贴浏览器顶部。由于受cookie送出机制的限制,在这些文件开头已经有bom的文件中,cookie无法送出(因为在 cookie送出前php已经送出了文件头),所以登入和登出功能失效。一切依赖cookie、ssion实现的功能全部无效。
解决办法:
在编辑、更改任何文本文件时,请务必使用不会乱加bom的编辑器。linux下的编辑器应该都没有这个问题。windows下,请勿使用记事本等编辑器。推荐的编辑清朝十三帝顺口溜器是:
editplus 2.12版本以上;
emeditor;
ultraedit(需要取消‘添加bom’的相关选项);
dreamweaver(需要取消‘添加bom’的相关选选修课英语项);
notepad(需要进行“转换为不带bom的utf-8”)等。
对于已经添加了bom的文件,叮咛的意思要取消的话,可以用以上编辑器另存一次。(editplus需要先另存为gb,再另存为utf-8。dreamweaver在”页面属性“的 “包含unicode 签名(bom)”取消即可)
本文发布于:2023-04-06 10:51:58,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/56409e033b7a6cc5a06a80f4d4b098d0.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:浏览器预览PHP文件时顶部出现空白影响布局分析原因及解决办法.doc
本文 PDF 下载地址:浏览器预览PHP文件时顶部出现空白影响布局分析原因及解决办法.pdf
留言与评论(共有 0 条评论) |