fgetcsv无法读取以mac格式的csv文件结尾的行,有什么更好的解决方案吗?

2022-08-30 09:11:33

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

ini_set("auto_detect_line_endings", "1");

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

谢谢


答案 1

php 文档明确推荐设置。auto_detect_line_endings

但是,我无法理解为什么你会想在2010年划定界线。如果可能,请将它们转换为 UNIX 样式 。\r\n


答案 2

\r行尾是在另存为CSV文件时由Microsoft Excel创建的,因此,如果您从Excel电子表格开始,则没有太多的解决方法。

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


推荐