[PHP-dev 869]Re: fgetcsvてゆーか、ファイル入出力の、5cの罠

KOYAMA Tetsuji koyama @ hoge.org
2003年 8月 26日 (火) 19:34:22 JST


  小山です。

At Tue, 26 Aug 2003 15:42:18 +0900,
Tomoyuki Asakawa wrote:
> あさかわです。

> そもそも、csvは、MS-BASICのINPUT文の書式からの派生なので
> (若い人はしらないとおもうけど)
> ""の中を、¥で、エスケープするなんて概念(仕様)はないのです。
> #というか、¥1000とか(もち半角で)かけなくなってしまう。

  CSV ってもはや正確な仕様はどこにも存在しなくて、いろんなローカルルー
ルが世の中に混在している状況だと理解しています。

  比較的よく見るのが

  1. value は「,」で区切る。(CSV だからあたりまえ)
  2. value に「,」や「 」(スペース)が含まれる場合は、value 自体を「"」
     で囲む。
  3. 2.の状況で value に「"」が含まれる場合は「\」でエスケープして「\"」
    とする。
  4. 2.の状況で value に「\」が含まれる場合は「\」でエスケープして「\\」
    とする。

というものです。

  それなりに納得できる理由ではあるので、「\ でエスケープするのは間違っ
てる」と言い切るのもどうかなぁと思います。

-- 
	小山 哲志@ビート・クラフト
	koyama @ beatcraft.com
	koyama @ hoge.org


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