方法一:用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个字节,然后再统计行数,效率较高
<?php
function count_line($file){
$fp=fopen($file, "r");
$i=0;
while(!feof($fp)) {
//每次读取2M
if($data=fread($fp,1024*1024*2)){
//计算读取到的行数
$num=substr_count($data,"\n");
$i+=$num;
}
}
fclose($fp);
return $i;
}
?>
上面三种方法中,方法三较好!