我已经创建了一个表单,能够在提交时将数据添加到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工作表吗?
你可以通过使用fputcsv和fgetcsv让你的生活更轻松。
fputcsv
允许您指定所需的分隔符和外壳。最大的区别是您必须将字段作为数组传递:数组的每个值都是 csv 行中的列值。
因此,给定一个包含 CSV 行值的$fields
数组:
$file = fopen( 'data.csv', 'a' );
fputcsv( $file, $fields, ',', '"' );
fclose( $file );
重要: 必须a
fopen
上的标志才能追加到文件中。如果使用w
将覆盖之前的内容。