将输入写入 CSV

Write Inputs to CSV

我是 PHP 的新手,无法理解这一点。

我有 2 个输入(姓名和电子邮件)。我需要将它写入 CSV 文件并点击下载。我发现我需要 fputcsv() 函数并形成数组数组...

但不知何故我看不出如何正确地形成该数组...有人可以给我提示吗?

我已经在写 txt 文件了...但就是无法将其转换为 csv...

public function invokeAction(CakeRequest $request){
         if ($this->request->is('post')) {
            if(isset($_POST['subName']) && isset($_POST['subEmail'])) {
            $data = $_POST['subName'] . '-' . $_POST['subEmail'] . "\n";
            $ret = file_put_contents('../tmp/subs.txt', $data, FILE_APPEND | LOCK_EX);
            unset($_POST['subName']);
            unset($_POST['subEmail']);
         }   
    }

您唯一需要做的就是将 subName 和 subEmail 之间的破折号替换为“,”,并将您的文件重命名为 subs.csv。

public function invokeAction(CakeRequest $request){
         if ($this->request->is('post')) {
            if(isset($_POST['subName']) && isset($_POST['subEmail'])) {
            $data = $_POST['subName'] . ',' . $_POST['subEmail'] . "\n";
            $ret = file_put_contents('../tmp/subs.csv', $data, FILE_APPEND | LOCK_EX);
            unset($_POST['subName']);
            unset($_POST['subEmail']);
         }   
    }

CSV 不是一种特殊的文件格式。它只是具有特定格式的纯文本。

谢谢维姆的回答。我的解决方案几乎相同,但以防万一有人需要它:

public function invokeAction(CakeRequest $request){
         if ($this->request->is('post')) {
            if(isset($_POST['subName']) && isset($_POST['subEmail'])) {
            // $data = $_POST['subName'] . '-' . $_POST['subEmail'] . "\n";
            $subName=$_POST['subName'];
            $subEmail=$_POST['subEmail'];
            $subs[] = array("$subName","$subEmail");
            //$ret = file_put_contents('../tmp/subs.txt', $data, FILE_APPEND | LOCK_EX);
            $fp = fopen('../webroot/subs.csv', 'a');
            foreach ($subs as $fields) {
                fputcsv($fp, $fields);
            }
            fclose($fp);
            unset($_POST['subName']);
            unset($_POST['subEmail']);
         } 
    }