質問: DBは使わず配列でcsv出力をしたいと思っています。 現在アンケートフォームを作っていて、 ``` 名前: Email: 年齢: 性別: 男 女 趣味: 料理 旅行 プログラミング 野球観戦 ダンス カメラ カフェ巡り 読書 ゲーム カラオケ ``` 上記のファイルを ``` ``` このconfirm_enq.phpでgetしています。 やりたいことは、ここで得た回答をdata.csvで出力したいのですが、 配列に入れて出力する書き方がわかりません。 よろしくお願いいたします。
回答: ほとんど完成しているように見えます。 ただ単に、ファイルに書き出したいだけであれば、 confirm_enq.phpの一番したのphpの部分に、数行ファイル操作用のコマンドを書き加えればよいはずです。 具体的には、 ``` foreach($_GET["hobby"] as $value){ echo "{$value}, "; } ``` の部分を、下記に変えてください。 ``` $myfile = fopen("data.csv", "a") or die("Unable to open file!"); foreach($_GET["hobby"] as $value){ $content = "{$value}, "; echo $content; fwrite($myfile, $content); } fwrite($myfile, "\n"); fclose($myfile) ``` 説明としましては、 fopenを使用して、ファイルにアクセスする変数(ファイルハンドル=$myfile)を作成します。 その後、fwriteコマンドを使用し、どのファイルにsaveしたいのか(ファイルハンドル$myfile)を指定し、そのあとに、記入したい内容(ここでは($content)を書いておきます。 最後にfcloseを使って、ファイルの書き出し終了を指示しています。 補足としては、上記のものでは、書き出すたびにdata.csvの一番下に新しい情報と付け加えていくという形にしています。(たぶんKojimaさんはそのようにしたいのではないかと思いまして。) しかし、data.csvを毎回書き換えたい(overwrite)したい場合は、 ``` 変更前: fopen("data.csv", "a") //"a"は、"append(書き足し)" 変更後: fopen("data.csv", "w") //"w"は、"write(書き出し)" ``` に変更すればいいですよ。 良いアンケートフォームができるといいですね。頑張ってください。