我正在使用带有fgetcsv函数的php解析csv文件 . 它解析了一行中的所有内容,后来我发现,csv包含carraige返回为“\ r” . 我看到 - 它之前被报道为php bug . 我已经通过设置php运行时配置解决了这个问题 -
ini_set("auto_detect_line_endings", "1");
有没有更多的解决方案或这是正确的方法?
谢谢
\r 行结尾是在保存为CSV文件时由Microsoft Excel创建的,因此如果您从Excel电子表格开始,则没有太多可用性 .
\r
使用 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);
php documentation明确建议设置 auto_detect_line_endings .
但是,我无法理解为什么你想在2010年用 \r 分隔行 . 如果可能,将它们转换为UNIX风格的 \n .
\n
2 回答
\r
行结尾是在保存为CSV文件时由Microsoft Excel创建的,因此如果您从Excel电子表格开始,则没有太多可用性 .使用
auto_detect_line_endings
工作正常,或者您可以使用preg_replace("/\r\n|\n\r|\n|\r/", "\n", $subject);
规范化行结尾php documentation明确建议设置
auto_detect_line_endings
.但是,我无法理解为什么你想在2010年用
\r
分隔行 . 如果可能,将它们转换为UNIX风格的\n
.