プロが教える店舗&オフィスのセキュリティ対策術

eWeb様のphpメールフォームスクリプトデータを
参考にさせて頂いているのですが
URL:http://php.eweb-design.com/1301_mail.html
フォームで入力してもらってメールで送信して頂いた
データをcsvなどで自動に保存できたらと思っています。

fputcsvなどいろいろと調べては見たのですが
技術的に詳しいことが分からないので
質問させて頂きました。

A 回答 (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);
    • good
    • 0

違いますよ


<?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);
としたらいいと思います。
    • good
    • 0

サンプルソースです


参考までに(抜粋)
 $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);

この回答への補足

サンプルソースありがとうございます。

例えば、送信する項目が
[メールアドレス]、[名前]、[アンケート]とした場合、

<?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のサンプルソースも見せて頂けるとありがたいです。

補足日時:2007/08/24 19:22
    • good
    • 0

fputcsvであってますよ。


PHP4ならcsvを先に作ってfwrite
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!