Как-то php сломал doctype

Я создал два потока здесь и здесь, о том, что интернет-исследователь работает в режиме quirks, и это сломало макет. После небольшого расследования я обнаружил, что каким-то образом php создает беспорядок.

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> <style type="text/css" media="screen"> body{ font: 11px Tahoma, Verdana, Arial, sans-serif; color: #707070; background: #8c2727 url('../img/bgr_red.png') repeat-x; } a { color:#bc2828; text-decoration:none; font-weight: bold; outline: none; } #wrapper{ position: relative; width: 960px; margin: 70px auto; background-color: #fff; border: 1px solid red; } </style> </head> <body> <div id="wrapper"> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> </div> </body> </html> 

Я верю, что проблема в CMS. Но что могло сломать доктрину?

EDIT: Вот скриншот от Fiddler См. Прямоугольник. Что это ?

Solutions Collecting From Web of "Как-то php сломал doctype"

Если браузер обрабатывает две страницы по-разному, то между ними существует какая-то разница, даже если это не сразу видно, когда вы «View Source».

Я рекомендую использовать такой инструмент, как Fiddler, для просмотра фактического содержимого страницы, поставляемого с сервера.


Изменить: вы обнаружите, что вкладки «RAW» и «HEX» важнее, чем «TextView». Начните с «Raw» и сравните заголовок Content-Length, затем посмотрите «HexView», чтобы увидеть, что изменилось.

Скорее всего, есть некоторый вывод, идущий в браузер до doctype.

Гарантировать, что:

  • Перед открытием тегов <?php нет пробелов или каких-либо других данных
  • Вначале нет спецификации, если ваши файлы сохраняются с использованием некоторой кодировки Unicode

… в любом из файлов, которые обрабатываются для генерации вашего вывода.