最近在 Windows 下修改一个 WordPress 主题时,以 UTF-8 BOM 格式保存文件,后来导致网站页面在 IE 下出现无法居中显示等问题。下面是具体的排查和解决过程,留作日后参考。
网站页面在各版本的 IE 下都不能正常显示:页面主题内容不能居中,紧靠左侧,同时左右侧栏也显示不正常,总之就是主题的 css 并没有生效。
而另一方面,网站页面在 Firefox 和 Chrome 浏览器下均显示十分正常。
1. 经排查发现,无论 IE、Firefox 还是 Chrome 下,浏览器下看到生成的 html 中都已经加了 DOCTYPE 标识,但是很奇怪,前面多了一行空行,即看到的 html 源代码的前两行是:
2. 经过查相关资料,确定可能是 IE 下对 DOCTYPE 的识别要求很严格,而 Firefox 和 Chrome 却可以正常识别。问题在于为什么会多出这么一行空行?
3. 在 Linux 服务器端查看主题相关文件,发现有些文件的开头存在特殊字节(后来查相关资料确定是 UTF-8 的 BOM 标记):
4. 原因分析:对于 UTF-8 中的 BOM 字节,PHP 不会忽略,而是在读取、包含或者引用这些文件时,将 BOM 作为该文件开头正文的一部分,于是就有了<feff>这样的特殊字符。进一步,在 windows 下,遇到不识别的字符又按照换行处理,所以就多出了一行空行。
排查定位到这个原因真不容易,解决方法却很简单,以下两种任意一种即可:
2. linux 环境下编写 php 脚本遍历指定目录,删除该目录下所有文件的 BOM 字节。
还没有人赞赏,快来当第一个赞赏的人吧!
- 2¥
- 5¥
- 10¥
- 20¥
- 50¥
你可能也喜欢
- ♥ 律师事务所企业织梦模板06/16
- ♥ 织梦化妆美甲培训类企业网站模板06/16
- ♥ 绿色小清新印刷行业 dede 模板06/16
- ♥ Gello -新闻和杂志 WordPress 主题-主题派04/19
- ♥ mkBlog 主题 v2.4.0 最新版下载06/16
- ♥ Ecofine -生态与环境 WordPress 主题-主题派04/19