fgetcsv无法读取以mac格式化的csv文件结尾的行,任何更好的解决方案?

时间:2010-12-27 20:52:49

标签: php fgetcsv

我正在使用带有fgetcsv函数的php解析csv文件。它解析了一行中的所有内容,后来我发现,csv包含carraige返回为“\ r”。我看到 - 它之前被报道为php bug。我已经通过设置php运行时配置解决了这个问题 -

ini_set("auto_detect_line_endings", "1");

还有更多的解决方案,还是正确的方法?

由于

2 个答案:

答案 0 :(得分:32)

php documentation明确建议设置auto_detect_line_endings

但是,我无法理解为什么你想在2010年用\r分隔行。如果可能的话,将它们转换为UNIX风格的\n

答案 1 :(得分:5)

\r行结尾是在保存为CSV文件时由Microsoft Excel创建的,因此如果您开始使用Excel电子表格,则没有太多可用性。

使用auto_detect_line_endings工作正常,或者您可以使用preg_replace("/\r\n|\n\r|\n|\r/", "\n", $subject);

对行结尾进行规范化