php获取文件行数:
方法一:
用while循环逐行统计,效率太慢
$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方法一次性读取,但不适用于大文件
$line = count(file('filename'));
echo $line;
?>
方法三:
多行统计,每次读取N个字节,然后再统计行数,效率较高
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;
}
?>
上面三种方法中,方法三较好!