Корисні статті 3

Часто при перенесенні сайту з локального комп'ютера можна зустрітися з помилкою виду:

Warning: Can not modify header information - headers already sent by (output started at.

Причини такої проблеми різні. Одні з найпоширеніших це:

1) зайві символи, пробіли в файлі;
2) через BOM в UTF.

C першою причиною все зрозуміло - досить просто видалити зайві символи і проблема зникне.
А ось з другою проблемою набагато цікавіше.

BOM (англ. Byte Order Mark, BOM) - це мітка порядку байтів Юникода. також її часто називають сигнатурою (відповідно, UTF-8 та UTF-8 with Signature).

За наявністю сигнатури програми можуть автоматично визначити, чи є файл закодованим в UTF-8. проте файли з такою сигнатурою можуть некоректно оброблятися старими програмами, зокрема xml-аналізаторами. Багато програм Windows (включаючи Блокнот) додають байти 0xEF. 0xBB. 0xBF на початку будь-якого документа, що зберігається як UTF-8 - це і є BOM.

А тепер займемося видаленням BOM:

Для того, щоб видалити BOM з файлів, необхідно буде скористатися консоллю (підключившись по SSH). Для підключення по SSH з Windows скористайтеся даною статтею. Для пошуку BOM 'а в файлах сайту, можна використовувати команду:

Команда виведе список файлів, в яких були знайдені BOM-символ.
Також можна скористатися даною командою:

А за допомогою наведеної нижче команди можна знайти мітки порядку байтів і відразу ж видалити їх:

Схожі статті