[PHP-dev 973]Re: fgetcsv仕様変更について(wasfgetcsv

Moriyoshi Koizumi moriyoshi @ at.wakwak.com
2004年 1月 11日 (日) 00:11:38 JST


小泉です。

On 2004/01/10, at 15:23, Tomoyuki Asakawa wrote:

>> fgetcsv() を使っている方は 4.3.4 もですが 4.3.5 への移行は
>> 現時点では避けた方がいいと思います。仕様が大きく変えられています。
>
> えええ、まだかわるのですか?

先日の php-dev 952 から始まる仲村さんの報告を見てください。
まだこの問題が未解決なのです。

>> # 余談ですが、議論の中で、論拠を出すために
>> # 私の方で CSV のテストケースを20個ほど書いて検証しないといけないので、
>> # 現在話が中断しています。。。
>> # なんか普通に無賃労働しているようで悲しくなってきています (;_;
>
> どうしてケースで論拠を示すことがが必要なんでしょうか?
> csvに関しては、¥でエスケープしては「いけない」のであって
> それ以外の理由はないと思うのですが。
> BASICのマニュアル見れかも...
> あえて言えば、40歳以上のBASIC経験者に聞けでしょうかねえ。

csv というフォーマットを考えるときに、何を手本にするかということが問題な
わけですね。csv というフォーマットは一般に認知されているにもかかわらず
標準をもたないという点で非常におもしろいと思うのですが、
あさかわさんのおっしゃるようにかつて(?) の BASIC の input # なフォーマットを
手本とするのが妥当かもしれませんし、また別の手本もあるでしょう。それは
実装者のバックグラウンドによると思います。*nix な世界だけで育ってきた
方々もいるわけですし。私は OPEN "CAS:" FOR INPUT AS #1 な人でしたが。

\ でエスケープする仕様が全面的に間違っているというように私は思いません。
しかし、個人的見解からするとあまり一般的ではないようには思います。

結論から言うと、さまざまなフォーマットに対応できるよう、オプションを
設けるべきなのですが、アドホックな拡張を繰り返してきた fgetcsv() には
これ以上オプション引数を追加できないのではないかと思います。だから、
別の関数 (parse_csv でもいいですが) を追加して、そっちにまとめるのが
妥当かと思います。ここはあくまで私見ですが。



PHP-dev メーリングリストの案内