[PHP-users 17839]Re: カンマ入りデータをCSVで出力するには

misawa @ ctie.co.jp misawa @ ctie.co.jp
2003年 9月 12日 (金) 15:38:58 JST


こんにちは
三沢といいます。

EXCELのCSVファイルを前提として回答してみます。はずしていたらすいません。

結論としては、PHPとはあまり関係の無いことが原因です。

EXCELのデータには、\記号でエスケープするという発想はありません。
カラムにカンマを含むデータを作成する場合は、カラム全体を「"」(ダブルクォーテー
ション)で囲む必要があります。

>$str = "]},<.>?/";
の場合は、
>$currentRow .= str_replace(",","\,",$str);
ではなく
>$currentRow .="\"".$str,"\"";
のようになります(区切りのカンマは別途入れるとして。表記は色々あるとは思いますが)。
改行を含むセルの場合も同様です。

また、「"」自身は、「""」と表現します。


以下のサイトは使用言語がPerlですが、データの取り扱い方としては参考にな
るかと思います。

http://www.din.or.jp/~ohzaki/perl.htm#CSVfromValues

また、逆にEXCEL上でカンマなどの記号を含んだデータを作ってCSV形式で保存
してみると、よりはっきりするかもしれません。

以上、ご参考まで。

---
三沢隆治


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