设置CSV文件行读取限制

时间:2016-04-23 22:27:36

标签: php performance csv fgetcsv

我有一个脚本,它读取csv文件并将它们作为数组返回。它会读取许多不同的文件,这些文件具有不同的内容,行数和列数以及不同的大小(例如:从< 1kb到> 1Gb)。

ctrlPos.size()

我正在寻找一种优雅的方法,以确保在遇到大型文件时,它不会覆盖整个文件,以避免工作量过大。

以下是一些想法:

  1. 在n行后停止。 但是,对于具有少量行和多列的大型文件,这将无济于事

  2. 根据大小读取行。 Ex:读取500Mb文件的所有行,但只读取1Gb文件的50%的行。但是,如果最后一行是一堆空行,或者如果它们在第一行中有更多列,那么该解决方案将无济于事。

  3. 监控$data = []; $file = fopen($file, 'r'); while (($line = fgetcsv($file)) !== FALSE ) { $data[] = $line; } fclose($file); 的大小,并在达到某个阈值后停止。我没有任何理由排除这个想法,除非我不确定这是一个常见的做事方式

0 个答案:

没有答案