CSVって凄い面倒ですよね fgetcsvしないと、改行とか、カンマとか、タブとか色々ハマる事が判明した。 んで、その際に、エンコードもしなくちゃいけなくて、それをどうやったら楽にできるのかなーってネットぐるぐる回っていたら良い方法が書かれてたので、それをここにメモ。 $filename="hoge.csv"; $buffer=array(); $contents = file_get_contents($filename); $enc = detect_encoding_ja( $contents ); //エンコード判定 $buf = mb_convert_encoding($contents, "UTF-8", $enc ); //変換 $fh = tmpfile(); fwrite( $fh, $buf ); rewind($fh); while( ($data = fgetcsv($fh, 1000,",")) !== FALSE ){ array_push( $buffer, $data ); } fclose($fh); 要するに、一括でエンコードしてtempファイルに保存するってやり方ですね。 コードも凄いシンプルになったぜよ。 detect_encoding_jaはここのコードをそのままコピペ http://d.hatena.ne.jp/t_komura/20091220/1261305552