在php中,如果要统计文件的行数,对于小文件而言,使用file()函数是最方便的。
不过对于大文件而言,采用file()函数,就会效率很低,因为该函数会一次性把数据读取到一个数组中,然后储存在内存中。
由于php内存的限制,此方法处理大文件时,会效率极低,且容易出错。
本文介绍的这个方法,通过逐行遍历文件,可以处理任意大小的文件,而不用考虑内存限制的问题。
统计文件行数的代码,如下:
<?php /*** 统计文件行数,调用示例 ***/ echo countLines("/path/to/file.txt"); /** * * @统计文件行数 * @param string filepath * @return int * @edit www.jb200.com */ function countLines($filepath) { /*** open the file for reading ***/ $handle = fopen( $filepath, "r" ); /*** set a counter ***/ $count = 0; /*** loop over the file ***/ while( fgets($handle) ) { /*** increment the counter ***/ $count++; } /*** close the file ***/ fclose($handle); /*** show the total ***/ return $count; } ?>