LINE messaging APIでTextファイルを受信した際に、BOMがついており先頭の空白削除がうまく動作しなかったので、PHPでUTF8のBOMを削除する方法がいくつかあったのでメモ
preg_replaceで削除するパターン
今回はこっちを使って削除
return preg_replace("/^\xEF\xBB\xBF/", '', $text);
U+FEFFで指定するパターン
$str = preg_replace('/\x{FEFF}/u', '', $file);
hexで削除するパターン
function remove_utf8_bom_head($text) { if(substr(bin2hex($text), 0, 6) === 'efbbbf') { $text = substr($text, 3); } return $text; }
PHPでBOM削除で検索すると、自分が前に公開していたJSONから削除する記事が上位に表示され恥ずかしい。
https://stackoverflow.com/questions/10290849/how-to-remove-multiple-utf-8-bom-sequences