PHP / HTML / CSS: IE ведет себя странно при использовании require_once () - PullRequest
2 голосов
/ 31 июля 2009

Теперь это самая странная проблема, с которой я когда-либо сталкивался в PHP.

Все страницы выглядят нормально, кроме одной; Когда я впервые увидел проблему, я подумал, что это одна из распространенных проблем с IE и таблицами стилей (у меня есть конкретный CSS-файл на этой странице). Я пытался исключить CSS-файл, просто чтобы убедиться, что проблема действительно в этом файле, но это не так. Тогда я подумал, что забыл закрыть какой-либо тег HTML, поэтому я просмотрел код несколько раз, но все казалось правильным. Поэтому я начал вставлять код в комментарии и сравнивать с IE, пока не понял, что когда я добавляю следующий код в комментарий, сама страница ведет себя нормально:

require_once(PATH_INCLUDES . 'adjacency.php');

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

Некоторые вещи, которые выглядят странно в IE, следующие:

  • Контейнер обычно центрирован, теперь он слева.
  • Фон с repeat-x не проходит до конца.
  • Функция наведения в меню не работает.

Любой

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

Ответы [ 2 ]

5 голосов
/ 31 июля 2009

Предположительно, после закрывающего "?>", Скорее всего, в конце включаемого файла есть место. (Одна из причин, по которой Zend Framework рекомендует не использовать закрывающий тег PHP.)

1 голос
/ 31 июля 2009

Начинается ли включенный PHP-файл с спецификации UTF-8 (метка порядка байтов)? Это невидимая последовательность байтов, которая иногда появляется в начале текстового файла Unicode, чтобы помочь автоопределению UTF. К сожалению, PHP несколько наивен и будет выводить спецификацию по мере ее чтения из включенного PHP-файла. В моем эксперименте IE может обрабатывать одну спецификацию, но если она удвоена (как это будет в случае, если запрашиваемый браузером PHP-файл и каждый из них содержит спецификацию), он не сможет увидеть тип документа в начале и таким образом, режим причуд срабатывает.

Убедитесь, что ваш редактор настроен на сохранение без спецификаций.

...