[PHP-dev 605] Re: fgetcsv関数について
Moriyoshi Koizumi
php-dev@php.gr.jp
Fri, 22 Nov 2002 00:28:21 +0900
小泉です。
そうですね、確かめていないのでなんともいえないのですが、
改行コードの問題のような気がします。
Access から吐き出される csv => \r\n
PHP で扱えるもの => \n のみ
改行コードを変換してトライしてみてください。どうでしょうか?
これで上手くいけば、これもバグといえばバグといえると思います。
Masumitsu Hatta <hatta@ja3.so-net.ne.jp> wrote:
> 八田です
>
> 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
>
> _______________________________________________
> PHP-dev mailing list
> PHP-dev@php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-dev