PHP CSVのパース(str_getcsv())

単純なCSVを配列に変換。マルチバイトにも対応させる。

作成日:2019-12-23, 更新日:2019-12-23

基本

$csv = 〇〇〇〇〇〇;

setlocale( LC_ALL, 'ja_JP.UTF-8');
$ary = str_getcsv($csv);

めも:日本語が含まれるとき

上記のように「setlocale( LC_ALL, 'ja_JP.UTF-8');」を追加すればOK
※文字コードが「UTF-8」じゃないときは正しい文字コードに置き換える

経緯

下記のような日本語を含むCSVを「str_getcsv()」にいれてみた。

"123","あいう"

▼こんな感じで「str_getcsv()」にいれてみた。

$csv = '"123","あいう"';
$ary = str_getcsv($csv);

var_export($ary);
array (
  0 => 123
  1  => あいう"
)

結果は上記( 1 => あいう")のように「"」がついてしまう。
色々調べるとロケール・文字コードを指定する必要があるとのコト。
→「setlocale()」でロケール・文字コードを指定。