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

Mus*_*usa 62 php fgetcsv

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

ini_set("auto_detect_line_endings", "1");
Run Code Online (Sandbox Code Playgroud)

有没有更多的解决方案或这是正确的方法?

谢谢

phi*_*hag 34

php文档auto_detect_line_endings明确建议设置.

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

  • 我的客户给了我一个包含\ r的文件.我问他使用了哪个操作系统版本,他告诉他使用leopard和office 2008.我正在为他们构建一个插件,那里会有很多最终用户,所以我正在尝试构建这个跨平台. (6认同)

spe*_*ary 5

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

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