我正在使用带有fgetcsv函数的php解析csv文件。它解析了一行中的所有内容,后来我发现,csv包含carraige返回为“\ r”。我看到 - 它之前被报道为php bug。我已经通过设置php运行时配置解决了这个问题 -
ini_set("auto_detect_line_endings", "1");
还有更多的解决方案,还是正确的方法?
由于
答案 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);