Спецификация на странице 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... что я могу проверить или настроить, чтобы диагностировать и решить проблему? Кстати, я не хочу спецификацию.

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


person Paolo63    schedule 29.11.2009    source источник
comment
Вы уверены, что проверили все файлы на предмет спецификации? т.е. не только запрошенный, но и все включенные.   -  person chelmertz    schedule 29.11.2009
comment
chelmertz, вы правы :-( Я забыл один маленький файл, и у него была спецификация... она была в плагине. Мне пришлось скачать весь блог через ftp и проверить каждый файл с помощью небольшой программы, которую я сделал на муха (я не могу сделать это на сервере в Арубе) и я нашел его. Спасибо, что заставил меня проверить все еще раз ;-)   -  person Paolo63    schedule 29.11.2009


Ответы (1)


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

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

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

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

person mattbasta    schedule 29.11.2009