fputcsv 意外行为
fputcsv unexpected behavior
看看这个代码示例:
$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 函数默认转义反斜杠字符。您可以查看手册 $escape_char = "\"
如果您不想转义反斜杠字符,则可以指定其他字符,如下所示:
fputcsv($ff, $store, ',', '"', '!');
这将为您提供所需的输出。
看看这个代码示例:
$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 函数默认转义反斜杠字符。您可以查看手册 $escape_char = "\"
如果您不想转义反斜杠字符,则可以指定其他字符,如下所示:
fputcsv($ff, $store, ',', '"', '!');
这将为您提供所需的输出。