使用PHP读取csv文件时,CSV文件中的换行出现了问题。逗号后跟换行符将拆分一个单元格的内容:
$csv = array_map('str_getcsv', file($file));
first,second,"third,
more,text","forth"
next,dataset
这将导致:
1) first | second | third
2) more text | forth
3) next | dataset
它应该导致:
1) first | second | third more text | forth
2) next | dataset
这是str_getcsv中的错误吗?
答案 0 :(得分:0)
请勿这样做,请使用fgetcsv()
。您遇到了问题,因为file()
不在乎文件中的字符串封装。
$fh = fopen('file.csv', 'r');
while( $line = fgetcsv($fh) ) {
// do a thing
}
fclose($fh);
https://secure.php.net/manual/en/function.fgetcsv.php
如果可以帮助,请在执行操作之前尽量不要将所有行存储到数组中。您系统的内存使用量将非常感谢。