PHP到CSV换行问题

PHP到CSV换行问题,php,csv,line-breaks,Php,Csv,Line Breaks,我使用以下代码从表单中获取数据并将其保存为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 } 当某人在地址字段中输入逗号或换行符时,会破坏格式。那么,如何才能将其转义,使整个地址

我使用以下代码从表单中获取数据并将其保存为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
}

当某人在地址字段中输入逗号或换行符时,会破坏格式。那么,如何才能将其转义,使整个地址保持在同一字段中呢?

CSV完全依赖于用于读取它的软件

查看有关某些程序如何期望CSV数据的一些详细信息

我创建了一个CSV类,可以处理大多数情况。你可能想看看

为了回答你的问题,你可以

$csv = CSV::newExcel();
$cvsData = $csv->row($name, $address);
// etc...

将每个数据项放在引号内。引用值内的一对引号表示单个引号。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($fp,array($data,$address));

我使用您的示例添加了更多细节。开始使用PHP的内置fputcsv()函数来编写csv文件,而不是构建您自己的$cvsData行。。。那么,至少您不需要担心数据中的逗号