2015/05/24

5/24/2015
 PHPのCSV処理機能について、少々関心させられたので、投稿してみます。
 次のようなCSV行があるとします。
Filename:csv1.csv
0,data1,"data2,data2sub
data2nextline",data3
1,2
 これを、PHPのCSV読み込み機能fgetcsv()で1レコード分取り出してみます。
 fgetcsv()は読み込んだレコードを、指定したセパレータで分解して配列データを返す関数です。
$fp = fopen("csv1.csv", "r" );
$data = fgetcsv($fp , "," );
print_r($data);
 で、$dataの中には何が返ってくるとおもいますか?
 セパレータの「,」だけで分解すると、3番目の項目は「data2」になるのか、「data2,data2sub data2nextline」となるのか、興味がわくところです。
 なんと「,」による区切りで分解するが、「"」による区切りもきちんと理解してい分解してくれるようです。
 「data2,data2sub nextline」に注目。
Array ( [0] => 0 [1] => data1 [2] => data2,data2sub nextline [3] => data3 ) 
 CSV処理というと、「,」をセパレータとした分解処理に特化して実装されたものをよく見ますが、さすが世界レベルで使われているPHPということで、少々関心させられてしまいました。

0 コメント:

コメントを投稿