php输出文件行数,PHP获取文件行数

提供两种实现方法,但是第一种效率最好

第一种:

$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").""; //此处设一个计时器 结束时间

?>

查看一下网页显示结果:

b64f5159757233ba5eb788f130f4c582.png

连一秒都不到。可以看出这样的效率还是蛮高的。

第二种:

$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").""; //此处设一个计时器 结束时间

?>

查看一下网页显示结果:

889e30ca0b18ad278aee348018038e73.png

好像也很快,也不到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.""; //此处设一个计时器 结束时间

?>

得到结果:

a0674d05fcda4f9592e90601f36abc68.png

第二种方法:

$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.""; //此处设一个计时器 结束时间

?>

得到结果:

fe487e10bd53580e68cae6697c939272.png

这种方法测试的可以明显看出来,还是第一种方法要好的多。

原文:http://www.cnblogs.com/quixon/p/4684898.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值