在php中,如果要统计文件的行数,对于小文件而言,使用file()函数是最方便的。
不过对于大文件而言,采用file()函数,就会效率很低,因为该函数会一次性把数据读取到一个数组中,然后储存在内存中。
由于php内存的限制,此方法处理大文件时,会效率极低,且容易出错。
本文介绍的这个方法,通过逐行遍历文件,可以处理任意大小的文件,而不用考虑内存限制的问题。
统计文件行数的代码,如下:
/*** 统计文件行数,调用示例 ***/
echo countLines("/path/to/file.txt");
/**
*
* @统计文件行数
* @param string filepath
* @return int
* @edit www.jbxue.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;
}
?>