UTF-8環境下でShift-JISのCSVファイルを読み込んでハッシュ配列に格納する関数

サイトの移行やリニューアルのさいには、CSVファイルからサイトのコンテンツを読み込む場合が多々あると思います。

例えば、エクセルで管理している店舗データや商品データ、会員データなどを新しいシステムにインポートする場合がそうです。

そのさい、CSVファイルを読み込んで、
$data[1行目][‘項目名1’]=”値1-1″、$data[1行目][‘項目名2’]=”値1-2″…
$data[2行目][‘項目名1’]=”値2-1″、$data[2行目][‘項目名2’]=”値2-2″…
…というように格納したい場合があります。

これを効率よく行う方法をメモしておきます。

問題点としては、PHPが動作する環境は、多くの場合UTF-8で、CSVはWindowsで編集した場合にはShift-JISになっていて文字コード周りの問題が発生する子っとが挙げられます。

下記関数では文字コードがバラバラだった時の対策として改行を統一しています。また、各値の前後に空白文字があった場合削除されるようにしています。

これで一気に多次元配列に変換できます。

カテゴリーPHP

質問・コメントなどあればどうぞ