我使用以下代码从表单中获取数据并将其另存为csv。
$cvsData = $name . "," . $address . "\n";
$fp = fopen("file.csv", "a");
if ($fp) {
fwrite($fp, $cvsData); // Write information to the file
fclose($fp); // Close the file
}
当有人在地址字段中输入逗号或换行符时,会破坏格式。那么我怎么能逃脱它以使整个地址保持在同一个领域?
答案 0 :(得分:4)
将每个数据项放在引号内。引用值内的一对引号表示单引号。 e.g。
"Daniel Norton","Congress Ave.
Austin (""Keeping it weird""), TX"
参考你的例子:
$data = str_replace('"','""',$data);
$address = str_replace('"','""',$address);
$cvsData = "\"$data\",\"$address\"\n";
更好的是,只需使用PHP函数 fputcsv 。
fputcsv($fp,array($data,$address));
答案 1 :(得分:0)
CSV完全依赖于用于读取它的软件。
请查看http://www.csvreader.com/csv_format.php,了解某些程序对CSV数据的期望。
我创建了一个可以处理大多数情况的CSV类。你可能想看看它。
https://gist.github.com/1786683
要回答您的问题,请使用该课程
$csv = CSV::newExcel();
$cvsData = $csv->row($name, $address);
// etc...