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
コメント
コメントを投稿