Многие программы добавляют байты 0xEF, 0xBB, 0xBF в начале любого документа, сохраняемого как UTF-8. Это метка порядка байтов Юникода (англ. Byte Order Mark, BOM), также её часто называют сигнатурой (соответственно, UTF-8 и UTF-8 with Signature).
По наличию сигнатуры программы могут автоматически определить, является ли файл закодированным в UTF-8, однако файлы с такой сигнатурой могут некорректно обрабатываться старыми программами, xml-анализаторами и РНР.
Функция удаления BOM из строки
- function removeBOM($str="") {
- if(substr($str, 0, 3) == pack('CCC', 0xef, 0xbb, 0xbf)) {
- $str = substr($str, 3);
- }
- return $str;
- }
Показать всё содержимое
Использование данной функции
- $str = 'Строка с BOM';
-
- $str = removeBOM($str);
-
- echo $str;
Стырено внаглую с сайта
<PHP Portal> (ссылку указал, не надо так наказывать, ребята =))
Комментарии