FuelPHP の Format クラスはとても便利なのですが、いまいち挙動不審な動きをするので、つまらないところではまります。。。
例えば、以下のようにして CSV ファイルを Format クラスで読み込む場合、
$data = file_get_contents($csvfilename); $data = Format::forge($data, 'csv')->to_array();
正しい CSV ファイルにも関わらず、きちんと読み込めないことが多々あります。
問題となるのは、file_get_contents()
ではなく、Format::forge
の方。
いろいろ調べてみると、、、
FuelPHPのformatクラスの改行判定でハマった
http://qiita.com/sabakaido/items/3378f928ecd69c1ed61d
上記のサイトで書かれている enclosure
がクセモノらしい。
結論としては、config/format.php
の以下の設定中の、、、
'csv' => array( 'import' => array( 'delimiter' => ',', 'enclosure' => '"', 'newline' => "\n", 'escape' => '\\', ),
enclosure を ''
にしたら正常に読み込めるようになりました。
おそらくあえて '"'
を設定しているはずので不具合のあるパターンもあると思いますが、今のところ問題は出ていません。
コメント