Спецификация на странице PHP, автоматически сгенерированная Wordpress - PullRequest
0 голосов
/ 29 ноября 2009

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

Большое спасибо заранее.

1 Ответ

5 голосов
/ 30 ноября 2009

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

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

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

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

...