CSV中的随机行中断用php读取

时间:2013-08-30 07:29:58

标签: php excel csv import

我正在尝试阅读并显示CSV文件的内容。出于某种原因,我试图阅读这个文件。

这是我的代码。

<?php
if (($handle = fopen("http://testdummies.dk/csv/weird2.csv", "r")) !== FALSE) {

while (($data = fgetcsv($handle, 0, ";")) !== FALSE) {
    echo "<pre>";
            print_r ($data);
            echo "</pre>";

}
fclose($handle);
}
?>

我使用丹麦的CSV文件,因此它使用;而不是,!

我已在http://testdummies.dk/csv/testdups2.php

进行了此测试

它生成的前3个阵列是正确的,但是第4个阵列在“单元格”47处爆发。我只是想弄清楚原因。 (文件在excel中打开很好。)

该文件位于http://testdummies.dk/csv/weird2.csv

提前致谢。

2 个答案:

答案 0 :(得分:1)

blog post表示PHP fgetcsv()无法正确处理引用的换行符。他提供了自己的CsvFileParser课程来解决这个问题。

答案 1 :(得分:0)

感谢@Barmar的回答......从那篇博客文章中我发现了一个基于CsvFileParser类的更新的库,带有一些额外的功能。

ParseCSV

例如,构建ParseCSV库是为了允许自动忽略文件中的标题行。结果阵列输出似乎结构更清晰。