- ベストアンサー
phpメールフォームから送信されたデータをcsvで保存したい
eWeb様のphpメールフォームスクリプトデータを 参考にさせて頂いているのですが URL:http://php.eweb-design.com/1301_mail.html フォームで入力してもらってメールで送信して頂いた データをcsvなどで自動に保存できたらと思っています。 fputcsvなどいろいろと調べては見たのですが 技術的に詳しいことが分からないので 質問させて頂きました。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
記載するのを忘れていました。 php4のサンプルソースです。 やり方は色々ありますがわかりやすく2次元配列で作成しました。 $DATA1 = array("メールアドレス","名前","アンケート");//1行目を格納 $DATA2 = array($email,$name,$Anke_to);//2行目を格納 $WriteList = array($DATA1,$DATA2);//2次元配列にする $res_file = fopen("Sample.csv",'w+'); foreach($WriteList as $list){ for ($i =0 ;$i < 3;$i++){ if($i==2){//アンケート項目か fwrite($res_file, $list[$i]); }else{ fwrite($res_file, $list[$i].","); } } fwrite($res_file, "\r\n");//改行を挿入 } fclose($res_file);
その他の回答 (3)
- swqamy
- ベストアンサー率37% (11/29)
違いますよ <?php $list = array('メールアドレス,名前,アンケート','$email,$name,$アンケート'); $res_file = fopen("Sample.csv",'w+'); foreach ($list as $line) { fputcsv($res_file, split(',', $line)); } fclose($res_file); ?> です。 この場合Sample.csvには 1行目 メールアドレス,名前,アンケート 2行目 $email,$name,$アンケート と記述されます。 「$email,$name,$アンケート」これは各変数ですよね? この場合一度別の変数に格納する方がわかりやすくなりますよ。 また、「$アンケート」この変数名はやめましょう。 変数名は極力アルファベットで記述するべきです。 $DATA = $email.",".$name.",".$Anke_to; $list = array('メールアドレス,名前,アンケート',$DATA); としたらいいと思います。
- swqamy
- ベストアンサー率37% (11/29)
サンプルソースです 参考までに(抜粋) $res_file = fopen("Sample.csv",'w+'); foreach ($CSV_WRITE as $line) { /*CSV形式変換で書込み(第2引数は配列を指定)*************** 例)$list = array('AAA,BBB,DA','AAA,VVV'); CSV)AAA,BBB,DA AAA,VVV って感じで記述される *******************************************************/ //$CSV_WRITEには例のような感じで値が格納されているとします fputcsv($res_file, split(',', $line)); } fclose($res_file);
- kalkichi
- ベストアンサー率64% (22/34)
fputcsvであってますよ。 PHP4ならcsvを先に作ってfwrite
補足
サンプルソースありがとうございます。 例えば、送信する項目が [メールアドレス]、[名前]、[アンケート]とした場合、 <?php $res_file = fopen("Sample.csv",'w+'); foreach ($CSV_WRITE as $line) { $list = array('メールアドレス,名前,アンケート','$email,$name,$アンケート'); fputcsv($res_file, split(',', $line)); } fclose($res_file); ?> というようなソースになるのでしょうか? また、もしお分かりになるのであれば、 PHP4のサンプルソースも見せて頂けるとありがたいです。