LoginSignup
1
1

More than 1 year has passed since last update.

【PHP】CSVファイルのBOMを削除する方法

Last updated at Posted at 2023-02-01

PHP(Laravel)のシステムにUTF-8形式のCSVファイルをアップロードする際、BOMを削除する方法です。

BOM付きの場合とBOM付きでない場合、両方に対応する必要がありました。

解決策

$text = preg_replace("/^\xEF\xBB\xBF/", '', $text);

参考:BOMとは

  • Byte Order Markの略
  • テキストの先頭に付く
  • CSVファイルを保存する際、Excelのバージョンや保存形式により、BOMが付く場合と付かない場合がある
  • 16進法で「EF BB BF」と表される
  • 「ファイルがUnicodeで書かれているか」や「エンディアンの形式」を判別するために付いている(※ただし、UTF-8ではエンディアンは関係ない)

余談:について

UTF-8の状態でデバッグした際、BOMはと出力されていました。
(ex.'日付'の場合、'�日付')

これは代替文字(REPLACEMENT CHARACTER)と呼ばれるもの。

UTF-8だと U+FFFD とされる文字であり、他の文字コードからUTF-8に置き換えたときに該当する文字がないときなどに使用される

参考サイトより

参考サイト

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1