2010年4月28日水曜日

PHPでCSVの処理をする(その3)

以前、PHPでCSVを処理するfgetcsvについて記事を書いた。

しかし、fgetcsvには「ダブルクォーテーションで囲まれていない日本語が文字化けする」という致命的なバグがあることに気づく・・・。

一部のサイトではlocaleをセットすると回避できるとか書いてあったけど、私の環境では解決しない。いろいろ探し回っているうちにfgetcsv_regという関数を見つけた。試してみたら問題なく動くが、標準のfgetcsvよりもパフォーマンスが落ちることに気づく。今のアプリは20万件の売上データを処理するので、シビアにパフォーマンスを向上させる必要があるので、泣く泣くあきらめる。

結局、こんな大量のデータをPHPで処理させるほうがおかしいと気づき、KGMODを外部プロセスで呼び出して処理させることにした。PerlのText::CSV_XSなら、こんな苦労しなかったのに、ブツブツ。

0 件のコメント:

コメントを投稿