• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ダブルクォーテーションつきでCSV出力したい)

PHPでCSV出力をする方法とは?

このQ&Aのポイント
  • PHPでデータベースから取り出した配列をCSVファイルに出力する方法について調べています。
  • 特に、ダブルクォーテーションをつけた形式でCSV出力を行いたいです。
  • 既存のサンプルプログラムを利用してCSV出力を行ってみたのですが、ダブルクォーテーションをつける方法がわかりません。

質問者が選んだベストアンサー

  • ベストアンサー
  • kteds
  • ベストアンサー率42% (1882/4440)
回答No.1

>//↓ここにダブルクォーテーションで囲ってもうまくいかない。↓ という意味は? 質問では 'あああ' とシングルクォーテーションで囲っただけですが、 添付画像のようにダブルクォーテーションで囲ってもうまくいかない、という意味なのでしょうか? array('"あああ"','"いいい"','"ううう"','"えええ"'),

hide_momiji
質問者

補足

はい。ご指摘のようにすると、 ”””あああ”””,”””いいい”””,”””ううう”””,”””えええ””” このように3つのダブルクォーテーションでくくられてしまいます。 なんとかひとつのダブルクォーテーションで囲われるようにしたいのです。 わかりますか?

その他の回答 (1)

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

質問者さんは何がしたいのでしょうか? 提示されたような文字列を『CSVファイルに出力する』だけであれば、ダブルクォーテーションで括る必要はありません。ダブルクォーテーションで括らないといけないケースでは、fputcsvが自動的にダブルクォーテーションで括って出力します。この処理を自前でやらなくていいのがfputcsvの便利なところです(正しいCSV出力ってけっこう面倒なんですよ・・・)。 (例) <?php $res = fopen('test.csv', 'w'); $dataList = array( array('あああ', 'いいい', 'ううう', 'えええ'), array('かかか', 'き,き,き', 'く く く', 'け"け"け'), array('"さささ"', '"ししし"', '"すすす"', '"せせせ"'), ); foreach($dataList as $dataInfo) { mb_convert_variables('SJIS', 'UTF-8', $dataInfo); fputcsv($res, $dataInfo); } fclose($res); とすれば、出力結果は あああ,いいい,ううう,えええ かかか,"き,き,き","く く く","け""け""け" """さささ""","""ししし""","""すすす""","""せせせ""" となります。空白やカンマやダブルクォーテーションや改行コードを含んで要れば自動的にダブルクォーテーションで括られますし、文字列中のダブルクォーテーションはエスケープのために "" と2重になるのが「正しいCSV」です。 ちょっと思ったのですが、まさかCSVファイルをMS-Excelで開いて確認していたりはしませんよね?MS-Excelで開くと括っているダブルクォーテーションは除去されてセルの値になります。∴ エディタで開いて確認しないと意味がありません。

hide_momiji
質問者

お礼

ありがとうございます。 参考にしました。

関連するQ&A