提供两种实现方法,但是第一种效率最好
第一种:
$file_path = ‘test.txt‘; //文件路径 此处找一个1094644行的TXT文件 test.txt
$line = 0 ; //初始化行数
//打开文件
set_time_limit(0);
echo "开始时间:".date("H:i:s").""; //此处设一个计时器 开始时间
$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."";
echo "结束时间:".date("H:i:s").""; //此处设一个计时器 结束时间
?>
查看一下网页显示结果:
连一秒都不到。可以看出这样的效率还是蛮高的。
第二种:
$file_path = ‘test.txt‘; //文件路径 此处找一个1094644行的TXT文件 test.txt
set_time_limit(0);
echo "开始时间:".date("H:i:s").""; //此处设一个计时器 开始时间
$line = count(file($file_path));
//输出行数;
echo $line."";
echo "结束时间:".date("H:i:s").""; //此处设一个计时器 结束时间
?>
查看一下网页显示结果:
好像也很快,也不到1秒钟。
下面我再用时间戳试一下:
修改一下PHP语句
第一种方法:
$file_path = ‘test.txt‘; //文件路径 此处找一个1094644行的TXT文件 test.txt
$line = 0 ; //初始化行数
//打开文件
set_time_limit(0);
$start_time=microtime(true);//获取程序执行开始的时间
$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."";
$end_time=microtime(true);//获取程序执行结束的时间
$elapse=$end_time-$start_time; //获取差值
echo "消耗时间".$elapse.""; //此处设一个计时器 结束时间
?>
得到结果:
第二种方法:
$file_path = ‘test.txt‘; //文件路径 此处找一个1094644行的TXT文件 test.txt
set_time_limit(0);
$start_time=microtime(true);//获取程序执行开始的时间
$line = count(file($file_path));
//输出行数;
echo $line."";
$end_time=microtime(true);//获取程序执行结束的时间
$elapse=$end_time-$start_time; //获取差值
echo "消耗时间".$elapse.""; //此处设一个计时器 结束时间
?>
得到结果:
这种方法测试的可以明显看出来,还是第一种方法要好的多。
原文:http://www.cnblogs.com/quixon/p/4684898.html