用PHP输出一个csv文件foreach ($old['lines'] as $line) { fputcsv($new, $line);
}比如$line的内容是:CA,12,YMU,13,YMU,12,N我希望的数据:"CA","12","Y""MU","13","Y""MU","12","N"我这样做foreach ($lines as &$line) { foreach ($line as &$column) { $column = '"' . $column . '"';
}
}结果出来每一列数据上都被加了两个双引号:""CA"",""12"",""Y""""MU"",""13"",""Y""""MU"",""12"",""N""
2 回答
慕标琳琳
TA贡献1830条经验 获得超9个赞
比较不正规的方法,若字段中含有双引号,解析的时候会出错:
<?php $fp = fopen('php://stdout', 'w'); fputcsv($fp, array_map(function ($item) { return '"' . $item . '"'; }, array(1,2,'b c','\'ss"')), ',', ' '); fclose($fp);
"1","2", "b c" ,"'ss""
红糖糍粑
TA贡献1815条经验 获得超6个赞
fputcsv方法有4个参数,如下:
fputcsv(file,fields,seperator,enclosure);
file 保存的文件名
fields 数据数组
seperator 字段分隔符,默认是逗号
enclosure 字段包围符,默认是双引号
你问题的点是第4个参数enclosure,由于你没有传(实际也不用传),默认就是双引号,所以经过你多余的处理后被加了2次。
- 2 回答
- 0 关注
- 105 浏览
添加回答
举报
0/150
提交
取消