我在XLS中有一些数据,我将它们保存为CSV,分隔符为**逗号*。 然后我尝试从此CSV文件加载数据:
$input = explode("\r\n", fread($file, filesize("my_data.csv")));
print_r($input);
输出:
Array ( [0] => data from the CSV file)
这是问题 - 在数组中始终只是一个项目,其中打印出CSV文件中的所有数据。怎么可能?为什么在数组中没有与CSV文件中的行一样多的项目?
另外,我尝试将"\r\n"
更改为“\ n”,但它是一样的。
我要做的是 - 从CSV文件中加载每一行,然后每行进行处理。
文件示例:
a,b,c,d
e,f,g,h
输出:
a,b,c,d e,f,g,h
答案 0 :(得分:4)
我建议使用php的内置csv文件阅读功能fgetcsv()
,而不是创建自己的:http://php.net/manual/en/function.fgetcsv.php
if (($handle = fopen($file, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$row = implode (",",$data); //puts back together the row from the csv
echo $row. "\n"; //assuming you want a visual linebreak on console, add the \n
}
fclose($handle);
}
答案 1 :(得分:0)
我是如何解决这个问题的:
在XLS文件中,在将文件导出为CSV之前,我在工作表的末尾添加了一个包含char '
的列。