fgetcsv无法读取以mac格式的csv文件结尾的行,有没有更好的解决scheme?

我用fgetcsv函数使用phpparsing一个csv文件。 它parsing了所有内容,后来我发现,csv包含carraige返回为“\ r”。 我看到 – 这是之前报告的PHP错误。 我已经通过设置php运行时configuration来解决这个问题,

ini_set("auto_detect_line_endings", "1"); 

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

谢谢

设置auto_detect_line_endings是PHP文档明确推荐的。

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

保存为CSV文件时, \r行结尾是由Microsoft Excel创build的,所以如果您使用的是Excel电子表格,则没有太多的解决办法。

使用auto_detect_line_endings可以正常工作,也可以使用preg_replace('/\r\n|\n\r|\n|\r/', '\n', $subject);来标准化行结束auto_detect_line_endings preg_replace('/\r\n|\n\r|\n|\r/', '\n', $subject);