Dragon
  • 欢迎来到主题派官网,主题源码,插件,模板下载。wordpress,thinkphp,discuz,织梦模板,小程序。
酷奇酷奇  2023-04-16 17:59 主题派 隐藏边栏 |   抢沙发  2 
文章评分 0 次,平均分 0.0

最近在 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
2
支付

本文来自投稿,不代表主题派立场,版权归原作者所有,欢迎分享本文,转载请保留出处!

酷奇
酷奇 关注:0    粉丝:0
这个人很懒,什么都没写

发表评论

表情 格式 贴图 链接 私密 签到 常用语
扫一扫二维码分享
×
艾瑞克网