使用fputcsv时,请避免使用csv文件中的默认引号

Jus*_*ohn 15 php fputcsv

使用fputcsv避免来自csv的默认引号

fputcsv($fp, $array, ',', '"'); // OR fputcsv($fp, $array);
Run Code Online (Sandbox Code Playgroud)

在test.csv中

testname,045645765789,"""04.07.2012 12:10:52"""
Run Code Online (Sandbox Code Playgroud)

如何避免上面的报价?

如下

testname,045645765789,04.07.2012 12:10:52
Run Code Online (Sandbox Code Playgroud)

Joh*_*n C 19

两个双引号用于转义双引号,因此看起来您的日期/时间已被引用.如果您只想获得正确引用的CSV,可以尝试删除任何现有的双引号(这可能有点暴力):

$array = array('testname',045645765789,'"04.07.2012 12:10:52"');
$array = str_replace('"', '', $array);

fputcsv($fp, $array);

// Output: testname,79323055,"04.07.2012 12:10:52"
Run Code Online (Sandbox Code Playgroud)

fputcsv想把东西围绕一个字符串中有空格,所以如果你想在所有没有引号你要么需要解决或使自己的功能做你想做什么.在这个问题下有很多好的解决方案(编辑:这是一个不同的链接).另外,PHP手册的注释中还有许多其他解决方案.

根据第一个链接,您可以:

$array = array('testname',045645765789,'"04.07.2012 12:10:52"');
$array = str_replace('"', '', $array);

fputs($fp, implode(',', $array)."\n");

// Output: testname,79323055,04.07.2012 12:10:52 
Run Code Online (Sandbox Code Playgroud)

  • 好东西!总之,你不能。`fputcsv`会*总是*用空格在字符串中加上一些东西。 (4认同)