fgetcsvにはまる・・・何度もね。

PHP5になって、サーバのロケール設定に無い文字コードをfgetcsvで扱うとおかしくなるのは
有名な話ですが、PHP4時代の残骸によって、今だにはまってしまいます。

しかも今回は、エラーや文字化けではなく、ある条件によってその行が抜けるというもの。
ある条件はまた時間がある時に調査&報告するとします。

csvファイルを扱うときは、だまってfgetcsv的なところがありましたが、もう使いたくありませんね。
今後はだまってこうします。

//CSVファイル読込
$csv_file = "./nantoka.csv";
//配列生成
$data_list = file($csv_file);
//まわす
foreach($data_list as $row){
     //1行データの末尾改行を取って、配列にする
    $ay = explode(",", trim($row));
     //まわす
    foreach($ay as $key => $val){
         //必要であれば文字コード変換
        $val = mb_convert_encoding($val, "euc-jp", "sjis");
         //データの最初と最後のダブルコーテーションを削除(囲い文字がダブコテの場合)
        $ay[$key] = preg_replace("/^\"(.*)\"$/", "$1", $val);
    }

     //1行1行が配列$ayに入るので、後は好きなようにする
}


以上!