Search code examples
phpcsvcountrow

How can I get the total number of rows in a CSV file with PHP?


Using PHP, how can I get the total number of rows that are in a CSV file? I'm using this method but cannot get it to work properly.

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

  echo $row;
}

Solution

  • Here's another option using file() to read the entire file into an array, automatically parsing new lines etc:

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

    Also, since PHP5, you can pass in the FILE_SKIP_EMPTY_LINES... to skip empty lines, if you want to:

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

    Manual: http://php.net/manual/en/function.file.php