如何通过php表单将数据(包括逗号)添加到CSV文件


How to add data (which includes commas) to CSV file through php form

我已经创建了一个表单,能够在提交时将数据添加到CSV。但是我的代码是这样的,csv文件由逗号分隔,因此当我在表单数据中添加逗号时,php代码将其分隔为另一个条目(列)。

这是我的 php 代码:

<?php 
$filename = "data.csv";
$string = $_POST['element_1'].",".$_POST['element_2'].",".$_POST['element_3'].",".$_POST['element_4_1']."-".$_POST['element_4_2']."-".$_POST['element_4_3'].",".$_POST['element_5']."'n";
if (file_exists($filename)) {
  $file = fopen($filename, "a");
  fwrite($file, $string);
} else {
   $file = fopen($filename, "a");
   fwrite($file, '"Name","Phone","No. of persons","Date","Venue"'n');
   fwrite($file, $string);
}
fclose($file);
?>

在上面的代码中,Venue 有时采用"逗号"。但代码将场地数据分隔到新列中。

那么,除了CSV或任何代码噱头之外,还有其他方法可以将数据输入Excel工作表吗?

你可以通过使用fputcsvfgetcsv让你的生活更轻松。

fputcsv允许您指定所需的分隔符和外壳。最大的区别是您必须将字段作为数组传递:数组的每个值都是 csv 行中的列值。

因此,给定一个包含 CSV 行值的$fields数组:

$file = fopen( 'data.csv', 'a' );
fputcsv( $file, $fields, ',', '"' );
fclose( $file );

重要: 必须a fopen上的标志才能追加到文件中。如果使用w将覆盖之前的内容。