• 締切済み

CSVへの書込み

はじめまして。 サーバー初心者でおかしな質問をしてしまっているかもしれませんが、どうかお付き合いくださいませ。 サーバー:fedora11 PHPでCSVファイルに書込みを行ったのですが、ダブルクォーテーション(")を表記したくて以下のようにしました。 ・PHP fputcsv( $data, Array('"犬"','300')); と表記したら ・CSV """犬""",300 と表記されてしまいます。 ・CSV "犬",300 というように表記するにはどうしたらよいかご存知の方いらっしゃったらお手数ですがご指導を御願いいたします。

みんなの回答

回答No.1

RFCかなんかで定義があった気がしますが、 一般的なCSVでは、値に、「ダブルクオーテーション」が含まれていた場合は、「""」とダブルクオーテーションの前にダブルクオーテーションを足してエスケープし、ソレをダブルクオーテーションで囲みます。 例) 「ほげ"もげ」という値の場合は、「"ほげ""もげ"」とする。 改行が含まれている場合でも、同様にダブルクオーテーションで囲まれます。 一応そういう決まりなんですが、システムなどによっては、ソレだと困るということであれば、fputcsvではなく、fwrite(又はそのエイリアスのfputs)を利用します。 質問者さんの例ですと、 <?php $data = fopen('path/to/file', 'w'); //まず配列を一行の文字列に $line = implode(',', array('"犬"', '300')); //最後に改行がつかないのでつける $line .= "\n"; //書き込み fwrite($data, $line); fclose($data); ?> こんな感じです。

tanaka_t
質問者

お礼

回答ありがとうございます。 うまく書き込める事ができました。 大変助かりました。ありがとうございます。

関連するQ&A

専門家に質問してみよう