方法一:用while循环逐行统计,效率太慢
<?php$file_path = 'xxx.txt'; //文件路径$line = 0; //初始化行数//打开文件$fp = fopen($file_path, 'r') or die("open file failure!");if ($fp) {//获取文件的一行内容,注意:需要php5才支持该函数;while (stream_get_line($fp, 8192, "\n")) {$line++;}fclose($fp);//关闭文件}//输出行数;echo $line;?>
方法二:使用file方法一次性读取,但不适用于大文件
<?php$line = count(file('filename'));echo $line;?>
方法三:多行统计,每次读取N个字节,然后再统计行数,效率较高
<?phpfunction count_line($file){$fp=fopen($file, "r");$i=0;while(!feof($fp)) {//每次读取2Mif($data=fread($fp,1024*1024*2)){//计算读取到的行数$num=substr_count($data,"\n");$i+=$num;}}fclose($fp);return $i;}?>
上面三种方法中,方法三较好!
