转义逗号并在创建csv文件时添加新列

时间:2017-04-28 06:24:46

标签: php regex csv

我正在将分隔的FLAT文件转换为CSV,并且它有一些数据,它们之间用逗号分隔。例如产品名称Iphone 6splus,32 gb。由于这个产品的描述,也可以有特殊字符。如何逃避逗号,因为fputcsv将此数据视为新行。这是错的。我正在使用

$handle = fopen("data.txt", "r");
$lines = [];
$row_count=0;
if (($handle = fopen("data.txt", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, "\t")) !== FALSE) {
        if($row_count>0)
        {
                    $lines[] = $data;
        }
        $row_count++;
    }
    fclose($handle);
}
$fp = fopen('example.csv', 'w');
foreach ($lines as $line) {
    fputcsv($fp, split('\*\*', $line));
}
fclose($fp);

在开始转换数据并存储到csv

之前,我需要转义该值

1 个答案:

答案 0 :(得分:0)

将字段括在引号中,例如

field1_value,field2_value,"field 3,value",field4, etc...

要对报价进行编码,请使用“,字段中的单引号将编码为”“,整个字段将变为”“”“。因此,如果您在Excel中看到以下内容:

---------------------------------------
| regular_value |,,,"|  ,"", |"""   |"|
---------------------------------------

CSV文件将包含:

regular_value, “,,,” “”, “”, “” “ ”“, ”“ ”“ ”“”, “” “” 简单地使用引号封装逗号,因此变为“,”。

命令和引用需要封装和引用,因此“,”变为“”“,”“”。