067 607 57 84
МЕНЮ

Як видалити BOM з файлу UTF за допомогою PHP

Створення сайтів Львів

UTF-8 (від англ. Unicode Transformation Format, 8-bit - «формат перетворення Юнікоду, 8-бітний») - поширене кодування символів Юнікоду, сумісна з 8-бітними форматами передачі тексту. Знайшло широке застосування в операційних системах і веб-просторі.

Багато програм Windows (включаючи Блокнот) додають байти EF16, BB16, BF16 на початку будь-якого документа, що зберігається як UTF-8. Це мітка порядку байтів (англ. Byte Order Mark, BOM), також її часто називають сигнатурою (відповідно, UTF-8 та UTF-8 with Signature). За наявності сигнатури програми можуть автоматично визначити, чи є файл закодованим в UTF-8, проте файли з такою сигнатурою можуть некоректно оброблятися старими програмами, зокрема xml-аналізаторами.

<?php
/*
 * змінна $text - вихідний текст
 */
function removeBOM($text="") {
    if(substr($text, 0, 3) == pack('CCC', 0xef, 0xbb, 0xbf)) {
        $text= substr($text, 3);
    }
    return $text;
}
/*
* file.php - файл, в якому потрібно видалити BOM
*/
$text=file_get_contents('file.php');
$text_without_bom = removeBOM($text);
?>
                    

Тепер в змінній $text_without_bom у нас текст без BOM. Його можна записати назад в файл або робити далі будь-які потрібні дії.