0

我管理两个不同的博客。它们都是 wordpress 2.8.6(因此它们的源代码完全相同,插件不同),但它们位于两个不同的托管平台(hostmonster.com 和 aruba.it)上。为了解释我的问题,我用 SmartSniff 与每个站点进行了一次会话。

这是hostmonster的转储:

GET /blog/paolo/ HTTP/1.1
Host: www.e-venturi.com
Accept-Encoding: identity
Accept-Language: en-us
Accept: text/html, text/plain, text/xml, image/gif, image/x-xbitmap, image/x-icon,image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0;)


HTTP/1.1 200 OK
Date: Sat, 28 Nov 2009 23:47:38 GMT
Server: Apache/2.2.14 (Unix) mod_ssl/2.2.14 OpenSSL/0.9.8l DAV/2 mod_auth_passthrough/2.1 FrontPage/5.0.2.2635
X-Powered-By: PHP/5.2.11
X-Pingback: http://www.e-venturi.com/blog/paolo/xmlrpc.php
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8

a6
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

现在来自阿鲁巴:

GET /blog/ HTTP/1.1
Host: www.cubanite.net
Accept-Encoding: identity
Accept-Language: en-us
Accept: text/html, text/plain, text/xml, image/gif, image/x-xbitmap, image/x-icon,image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0;)


HTTP/1.1 200 OK
Date: Sat, 28 Nov 2009 23:49:19 GMT
Server: Apache/2.2
X-Pingback: http://www.cubanite.net/blog/xmlrpc.php
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8

100b
...<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

(注:a6 和 100b 是 SmartSniff 报告的数据包大小)

好的,最大的区别是阿鲁巴岛前面的三个点<!DOCTYPE。它们是 UTF-8 BOM (0xef 0xbb 0xbf)。

作为两台服务器上相同的 PHP 源,为什么它只出现在一台服务器上?

内容已生成,因此帖子作者不能故意插入 BOM,并且我已验证该模板也是无 BOM 的。服务器上自然有不同的 PHP 和 Apache 版本......我可以检查或设置什么来诊断和解决问题?顺便说一句,我不想​​要 BOM。

提前谢谢了。

4

1 回答 1

5

BOM 在打开之前的 PHP 源文件之一中<?php。有时,这可能会弹出,因为您在编写不佳的文本编辑器中查看了源代码,使用了有错误的 FTP 客户端,使用了自动放入 BOM 的解压缩工具,从阴暗的镜子中获取源代码等等。

我的解决方案是在 Notepad++ 中打开主要的 WP 文件(index.phpwp-*.php等)并将格式从 Windows/Mac 切换到 Unix 并关闭 BOM。这将清理任何源问题的文件。

您在两台不同的服务器上看到不同的原因可能是因为服务器正在运行两个不同的服务器应用程序或两个不同的操作系统(甚至具有两种不同的配置)。平台差异将导致您的服务器发送他们自己对 BOM 的独特解释。

希望这可以帮助!

于 2009-11-29T21:07:51.543 回答