如何使用 PHP 获取 CSV 文件中的总行数?

2022-08-30 11:55:28

如何使用 PHP 获取 CSV 文件中的总行数?我正在使用此方法,但可以使其正常工作。

if (($fp = fopen("test.csv", "r")) !== FALSE) { 
  while (($record = fgetcsv($fp)) !== FALSE) {
      $row++;
  }

  echo $row;
}

答案 1

使用创建新文件引用:SplFileObject

$file = new SplFileObject('test.csv', 'r');

尝试以最高的Int PHP可以处理:seek

$file->seek(PHP_INT_MAX);

然后,实际上它会在文件中寻找它可能的最高行,那里有你的最后一行,最后一行+ 1等于你的总行:

echo $file->key() + 1;

这很棘手,但这会避免您将文件内容加载到内存中,这在处理非常大的文件时是一件非常酷的事情。


答案 2

这是另一个选项,用于将整个文件读入数组,自动解析新行等:file()

$fp = file('test.csv');
echo count($fp);

另外,从PHP5开始,您可以传入...以跳过空行,如果需要:FILE_SKIP_EMPTY_LINES

$fp = file('test.csv', FILE_SKIP_EMPTY_LINES);

手册: http://php.net/manual/en/function.file.php


推荐