使用str_getcsv进行CSV解析在新行上失败

时间:2018-11-23 21:05:19

标签: php csv

使用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中的错误吗?

1 个答案:

答案 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

如果可以帮助,请在执行操作之前尽量不要将所有行存储到数组中。您系统的内存使用量将非常感谢。