新闻中心

编码问题导致wordpress主题白屏的原因及解决方法

作者 / 时间 2013-11-15 21:24:43

小编今天用记事本修改了wordpress里面的评论文件wp-config.php,导致白屏。 为神马不能用记事本修改呢? 后面小编我在网上找资料,对照自己的原始操作,发现了问题所在。其实这就是传说中的UTF-8编码BOM问题。 安装了新插件,插件与wordpress不兼容,导致出现白屏。这个问题大家都知道也都会解决我就不多讲了今天小编为大家深入剖析一下编码问题导致WordPress的白屏问题。   问题原因:   Windows下对于UTF-8编码的文本文件在被用默认的记事本打开后,在保存的时候,Windows会自动在文件的头部添加三个隐藏的字符0xEF 0xBB 0xBF,也就是BOMByte Order Mark,即字节流标记),它的作用是让应用程序识别该文件的编码格式。众所周知PHP最常用的架构为LAMLinux+Apache+MySQL+PHP),并不是为Windows平台设计的,最初语言设计时并为考虑到Windows下的BOM问题,所以PHP在执行的时候并不会忽略BOM,在读取、包含或者引用这些文件的时候,PHP会将BOM的三个隐藏字符当作文件正文开头的一部分。根据脚本语言的特点,这串字符将会被显示出来,由此造成即使页面的top padding设置为0,也无法让整个网页紧贴浏览器顶部,因为在HTML的开头有这3个字符。   问题现象:   受到Cookie送出机制的限制,在这些开头已经有BOM的文件中,Cookie无法正确送出(因为在Cookie送出前PHP已经送出了文件头),所以WordPress登入和登出功能失效。并且一切依赖于CookieSession实现的功能全部无效,无法保存、更新任何设置。也就是我们经常看到的白屏现象!   解决办法:   在Windows上用PHP进行WordPress开发时,务必记住不要用记事本编辑文件,同时小编我发现用editplus也会出现类似的问题。在这里推荐用woredpress后台的编辑功能,或者用不会给文件乱加BOM的编辑工具,如DreamwareNotepad2等。

本文地址:https://www.51php.com/wordpress/13158.html

1
1
1
1
1
1
1