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 を '' にしたら正常に読み込めるようになりました。
おそらくあえて '"' を設定しているはずので不具合のあるパターンもあると思いますが、今のところ問題は出ていません。
コメント