Stream_Filter_Mbstringを使えばCSVの処理が捗る!!

Stream_Filter_Mbstringを使えばCSVの処理が捗る!!

巨大なSJISのCSVファイルをfgetcsv関数で処理する – hnwの日記
これはすごい!
と思ったので、ベンチマークだけ書いておきます

これを使えばどれだけ巨大なcsvでも適切に負荷を少なく処理することが出来ますね

環境

CentOS5.6
PHP5.4

csvは245741755byte 13万行ほどのものを利用

Stream_Filter_Mbstringを利用

詳しくはこちらで 巨大なSJISのCSVファイルをfgetcsv関数で処理する – hnwの日記

極々一般的なfgetcsvの使い方

EC-CUBEの中でもこんな書き方がされています

str_getcsvを使う方法

どうするのが一番楽かなーと調べた時に見つけました
Excel用のCSV(SJIS)をPHP(UTF-8)で読み込む – 130単位

結果

Stream_Filter_Mbstringを使うとファイルをすべてメモリに読み込まずに1行ずつ処理してくれるので
メモリのピークが少なくて済むのが利点ですね

ECサイトなんかは、csvダウンロードする処理が多いので、今後はこれを使って人との差を付けちゃいたいと思います (*´∀`*)

コメントを残す