Спецификация на странице PHP, созданной WordPress

Я администрирую два разных блогов. Они оба – 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 (0xef 0xbb 0xbf).

Являясь одним и тем же источником PHP на обоих серверах, почему он появляется только на одном сервере?

Содержимое создается, поэтому автор сообщения не может преднамеренно вставить спецификацию, и я также проверил шаблон для спецификации. Естественно, на серверах существуют разные версии PHP и Apache … что я могу проверить или установить для диагностики и устранения проблемы? Кстати, я не хочу спецификации.

Спасибо заранее.

Спецификация находится в одном из исходных файлов PHP до открытия <?php . Иногда это может появиться, потому что вы просмотрели источник в плохо написанном текстовом редакторе, использовали FTP-клиент с ошибкой, использовали инструмент распаковки, который автоматически вбрасывал спецификацию, получал исходный код из тенистого зеркала и т. Д. И т. Д.

Мое решение состоит в том, чтобы открыть первичные файлы WP ( index.php , wp-*.php и т. Д.) В Notepad ++ и переключить формат с Windows / Mac на Unix и отключить спецификацию. Это очистит файлы любых исходных проблем.

Причина, по которой вы видите это по-разному на двух разных серверах, может быть связана с тем, что на серверах работают два разных серверных приложения или две разные операционные системы (или даже с двумя разными конфигурациями). Различия в платформе приведут к тому, что ваши серверы отправят свою собственную уникальную интерпретацию спецификации.

Надеюсь это поможет!