html — заголовок смещен после реализации PHP (спецификация UTF-8)

У моей компании был приличный веб-сайт до того, как я присоединился к ним, с тех пор он был передан на аутсорсинг и не тронут. После присоединения я постепенно улучшал его в свободное время.

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

Я не очень разбираюсь в .htaccess и PHP, но на самом деле все, что я изменил, это:

  1. Разрешить PHP работать с файлами .html, добавив в .htaccess:

AddType application/x-httpd-php5 .html .htm

  1. Я изменился:

<?xml version="1.0" encoding="UTF-8"?>

Для того, чтобы:

<?php echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";?>

Чтобы избежать <? XML-тег от выдачи ошибок коротких тегов PHP

  1. скопируйте и вставьте три общих элемента, верхний колонтитул, левый столбец и нижний колонтитул в отдельные файлы HTML, и включите их, используя:

<?php include '_header.html';?>

  1. немного изменил верхний левый текст, но это ни на что не должно повлиять.

Глядя на исходный код после загрузки обеих страниц (включая PHP и обычный HTML), они выглядят одинаково.
Я не изменил ни один CSS, и поэтому они используют один и тот же код.

Тем не менее, по какой-то причине переход на включаемую версию PHP добавляет пустую строку вверху страницы.

Вот текущая (обычная XHTML) версия:
http://www.akidc.co.jp/index.html
Новый файл для справки:
((удалена устаревшая ссылка))
(Я не могу изменить .htaccess, пока не загружу сразу все новые страницы или <? XML-тег будет ошибкой их всех, так что он был бы как .php)

Файл заголовка, который я включаю, находится по адресу _header.html.

Пожалуйста, помогите мне решить пробел ^ _ ^

3

Решение

Запустите diff на источнике, вы сразу заметите, что здесь происходит.

В версии PHP у вас есть U + FEFF как раз перед <div id="header" ...>, Это интерпретируется браузером как контент, поэтому он пытается отобразить этот контент.

Чтобы решить эту проблему, убедитесь, что весь ваш исходный код хранится в формате UTF-8.

Кстати, вот разница:

введите описание изображения здесь

Видеть, что <feff>?

А теперь посмотрите на элементы вашей страницы. Это то, что вы имели раньше:

введите описание изображения здесь

и это то, что вы получаете в версии PHP:

введите описание изображения здесь

Обратите внимание на дополнительный блок «», который я выделил?

3

Другие решения

Других решений пока нет …