ak_wi,
Многие программы добавляют байты 0xEF, 0xBB, 0xBF в начале любого документа, сохраняемого как UTF-8. Это метка порядка байтов Юникода (англ. Byte Order Mark, BOM), также её часто называют сигнатурой (соответственно, UTF-8 и UTF-8 with Signature).
/**
* Удалить BOM из строки
* @param string $str - исходная строка
* @return string $str - строка без BOM
*/
function removeBOM($str="") {
if(substr($str, 0, 3) == pack('CCC', 0xef, 0xbb, 0xbf)) {
$str = substr($str, 3);
}
return $str;
}
// Строка, например, полученная при помощи file_get_contents()
$str = 'Строка с BOM';
// Строка без BOM
$str = removeBOM($str);
echo $str;
Решений множество