Заметка про HTML Quirks mode, UTF8, PHP и Hex

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Заметка про HTML Quirks mode, UTF8, PHP и Hex

Сообщение Proxy » 17.08.2012 (Пт) 15:38

Столкнулся с проблемой, потратил по глупому стечению обстоятельств около 2 часов времени на решение пустяковой и банальной проблемы, хочу поделиться опытом.
Итак поэтапно: дорабатывал один сайт, в процессе заметил, что страницы разъехались (блочная вёрстка, появились всяческие метаморфозы в FF, появились отступы, input`ы уменьшились). Стал искать причину, стал открывать разными браузерами, в итоге наткнулся на Тип визуализации.
Доктайп:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

И при этом отображается в Quirks mode.
Долго пытался понять в чём причина и что я для этого сделал. В итоге обнаружил, что если закомментировать фрагмент кода с двумя include (один для загрузки конфига и соединения с СУБД, второй для авторизации пользователей, поиска IP в блеклисте и т.д), то всё становится на свои места. Вспомнил, что переводил всё на utf-8. Сохранил страницу, посмотрел редактором hex и обнаружил троекратно повторяющийся BOM в начале страницы, FF на это отреагировал так: неверно определил символ открывающейся скобки тега дотайп, проигнорировал доктайп и начал обработку страницы с HTML, отрендерил страницу в режиме совместимости. Естественно без hex редактора заметить такое очень не просто.
Ну и тут уже причина очевидна, в PHP Include не игнорирует BOM (что вполне разумно) и фрагмент кода, который не должен ничего выводить выводит BOM таким вот хитрым образом (BOM расположен до <?php).
Follow the white rabbit.

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Заметка про HTML Quirks mode, UTF8, PHP и Hex

Сообщение FireFenix » 17.08.2012 (Пт) 19:14

Угу, стандартная проблема, особенно характерно вверху страницы появляется отступ, хотя margin, padding, border установлены в 0
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 41

    TopList