[PHP-dev 604] fgetcsv関数について

Masumitsu Hatta php-dev@php.gr.jp
Fri, 22 Nov 2002 00:10:23 +0900


八田です

php4-STABLE-200211210630.tar.bz2をコンパイルして
これまで作ったスクリプトを実行して気づいたことがあります

それは、いつの間にやらfgetcsv関数の実装が変わっていた
ことです。

しっかりと、NEWSには下記のように記載されていたのですが、

-- ここから --
- The fgetcsv() function now handles embedded end-of-line in a quoted field
  (Nick Talbott)
-- ここまで --

"でquoteされているフィールドでも行末'\n'があった場合はフィールドの区切り
と見なすようになっているようです。

おかげで、ACCESSから出力した'\n'を含むフィールドが途中で切れてしまい、次
の行になっていたため、バッチ処理が失敗するようになりました。

"働かざるもの食うべからず"とは思いますが、残念ながら元に戻すパッチを作る
今のところ技量がありません。
fgetcsvをPHPスクリプトで実現する関数をjp2.php.netにあるドキュメントへ
のコメントから引っ張ってきて使ってみましたが、やはりスピードに非常に
難があり実用は難しそうでした。

このような場合、頑張ってパッチを作るしかないのでしょうか?
あるいは、うまくこの実装変更に対応する方法があるのでしょうか?

皆様のご意見を伺えれば幸いです

-- 
Masumitsu Hatta