DOCTYPE не отображается, если объявлено в PHP include?

#php #html #include #doctype #quirks-mode

#php #HTML #включить #doctype #режим причуд

Вопрос:

До сих пор я объявлял, например

 >test.php
<!DOCTYPE HTML>
<html>
...
  

и в index.php

 >index.php
include 'test.php';
...
  

Отлично работает на всех, кроме IE8, насколько я знаю, будет отображать документ в quirksmode. Есть идеи, почему?

Комментарии:

1. Работает ли точно такой же HTML-код, если в локальном HTML-документе на вашем компьютере?

2. Как выглядит отображаемый HTML-код? Является ли Doctype самым первым, что появляется? Проверьте также наличие каких-либо меток порядка байтов .

3. @Phil — Ваш комментарий, вероятно, должен быть ответом.

4. Спасибо за ваши ответы. Из отладчика и сгенерированного исходного кода это выглядит совершенно нормально, только без doctype. Локальный или нет, это не работает, я пробовал.

Ответ №1:

Используйте следующий процесс:

  • Проверьте, не является ли <!doctype html> первой строкой; это вызовет режим quirks

  • Проверьте, является ли кодировка UTF-16; для этого требуется знак порядка байтов

  • Проверьте кодировки файлов HTML-документов, чтобы убедиться, что они совпадают

  • Очистите буфер для вывода doctype

Ссылки