【发布时间】:2018-01-18 16:55:43
【问题描述】:
我已经成功编写了一个脚本,该脚本使用 cURL 下载 CSV 文件,然后将 CSV 解析为数组,如下所示:
$rows = array_map(function($a) {
return str_getcsv($a, $delimiter);
}, explode("\n", $result));
然后我使用foreach 遍历$rows 以将某些内容保存到数据库中。
脚本运行良好,但是当使用较大的 CSV 文件(>10.000 行)时,脚本会变得相当慢,并且会出现更多错误。
我想将 CSV 文件切成小块,因此不会将整个文件导入到变量中。我找到了以下solution,但它仍然一次处理整个文件。
有没有一种方法可以将 CSV 切成小块并多次运行数据库功能?或者有没有更好的方法来处理这样的大型 CSV 文件?
我对处理大文件比较陌生,所以请善待!
【问题讨论】:
-
也许如果您显示更多代码,我们可能会更有帮助
-
使用您链接的解决方案逐行读取 csv 并在每 x 行之后将它们全部写入文件,清除内存并开始一个新文件。
标签: php large-files fgetcsv csv-import