Php fputcsv意外行为

Php fputcsv意外行为,php,export-to-csv,fputcsv,Php,Export To Csv,Fputcsv,请看以下代码示例: $store = array('This is something \" "special"!', 'Something else "special"!'); $ff = fopen('/tmp/aaaa.csv', 'w'); fputcsv($ff, $store); fclose($ff); 其结果是: "This is something \" ""special""!","Something else ""special""!" 困扰我的是“保持不变”。我希望它

请看以下代码示例:

$store = array('This is something \" "special"!', 'Something else "special"!');
$ff = fopen('/tmp/aaaa.csv', 'w');
fputcsv($ff, $store);
fclose($ff);
其结果是:

"This is something \" ""special""!","Something else ""special""!"
困扰我的是“保持不变”。我希望它会变成“或者至少”。我错了吗

在任何情况下,此行为都会破坏csv,因为例如,postgresql拒绝导入此类csv…

fputcsv函数默认情况下会转义反斜杠字符。您可以在手册中查看

如果不想转义反斜杠字符,则可以指定其他字符,如下所示:

fputcsv($ff, $store, ',', '"', '!');
这将为您提供所需的输出。

fputcsv函数默认情况下会转义反斜杠字符。您可以查看手册

如果不想转义反斜杠字符,则可以指定其他字符,如下所示:

fputcsv($ff, $store, ',', '"', '!');

这将为您提供所需的输出。

为了进一步澄清,我使用Ubuntu 14.04 64位和PHP 5.5.9,您看到可以添加的额外参数了吗?为了进一步澄清,我使用Ubuntu 14.04 64位和PHP 5.5.9,您看到可以添加的额外参数了吗?不恰当的是,我也需要它在PHP 5.4中工作。Fputcsv中没有该参数版本…我将接受此作为答案,因为除了编写自定义fputcsv之外,没有其他解决方案可用于较旧的php版本。我不适合在PHP5.4中使用此解决方案。fputcsv在这些版本中没有该参数…我将接受此作为答案,因为除wri之外,没有其他解决方案可用于较旧的php版本定制fputcsv。