Последнее обновление:

Как добавить ВОМ средствами РНР?

BOM – это три байта, расположенные в самом начале файла. Эти три байта являются маркером того, что содержимое файла закодировано в кодировке UTF-8 с ВОМ.

Примечание: содержимое файла может быть также закодировано в UTF-8, но без BOM. В таком случае байты, обозначающие BOM, в начале файла будут отсутствовать.

В некоторых случаях BOM необходим, чтобы программа, открывающая файл, уже точно знала, в какой кодировке он закодирован. Однако, иногда BOM противопоказан – см. ниже.

Сам ВОМ представляет собой следующую совокупность байт: \xEF\xBB\xBF

Чтобы программа, читающая файл (например, текстовый редактор), восприняла его в кодировка UTF-8 c BOM, эти три байта должна идти В САМОМ НАЧАЛЕ ФАЙЛА.

Вот код, который добавляет BOM к файлу средствам РНР:

file_put_contents('/путь/файл.txt', "\xEF\xBB\xBF" . $text);

Эта команда добавляет к началу содержимого переменной $text указанные три байта и после этого – записывает его в файл с именем файл.txt.

Примечание: эти три байта не будут заметны, например, в редакторе Notepad или Word. Но, скажем, Notepad++ при их наличии укажет, что файл (точнее, его содержимое) закодирован в кодировке UTF-8 c BOM. Чтобы визуально посмотреть эти байты, придется использовать какой-нибудь низкоуровневый (шестнадцатеричный) редактор.

В каких случаях BOM противопоказан?

Например, в файлах, содержащих программы на языке РНР. Дело в том, что если BOM содержится в таком файле, то при его запуске эти три байта будут сразу отправлены клиенту (в браузер). Обратим внимание: это произойдет еще ДО того, как программа выполнит какие-либо действия. Всё бы ничего, но в РНР есть команды (например, команда старта сессий), перед запуском которых не должно производиться никакого вывода (клиенту). Иначе РНР выдаст предупреждение, а то и ошибку. Поэтому файлы с программами РНР не должны содержать BOM.


Комментарии:
Всего комментариев:0
Пожалуйста, не забудьте ознакомиться с правилами оставления комментариев.



Подписаться на комментарии на этой странице

Мы можем выполнить

Другие услуги
Интересная и полезная
информация
НАПИШИТЕ НАМ
Яндекс.Метрика
Номер телефона
© Copyright Все права защищены 2013-