次のような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 コメント:
コメントを投稿