我正在尝试读取和显示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
提前谢谢。
René
这篇博客文章说PHP fgetcsv()
不能正确处理带引号的换行符。他提供了自己的CsvFileParser
类来解决这个问题。
感谢@Barmar的回答。。。从那篇博客文章中,我发现了一个基于CsvFileParser类构建的稍新的库,其中包含一些额外的函数。
分析CSV
例如,ParseCSV库的构建允许自动忽略文件中的头行。此外,所得到的数组输出的结构似乎更清晰一些。