PHP快速获取文件行数
转自:https://www.cnblogs.com/quixon/p/4684898.html
提供两种实现方法,但是第一种效率最好
第一种:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<?php $file_path = 'test.txt' ; //文件路径 此处找一个1094644行的TXT文件 test.txt $line = 0 ; //初始化行数 //打开文件 set_time_limit(0); echo "开始时间:" . date ( "H:i:s" ). "</br>" ; //此处设一个计时器 开始时间 $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 . "</br>" ; echo "结束时间:" . date ( "H:i:s" ). "</br>" ; //此处设一个计时器 结束时间 ?> |
查看一下网页显示结果:
连一秒都不到。可以看出这样的效率还是蛮高的。
第二种:
1
2
3
4
5
6
7
8
9
10
|
<?php $file_path = 'test.txt' ; //文件路径 此处找一个1094644行的TXT文件 test.txt set_time_limit(0); echo "开始时间:" . date ( "H:i:s" ). "</br>" ; //此处设一个计时器 开始时间 $line = count (file( $file_path )); //输出行数; echo $line . "</br>" ; echo "结束时间:" . date ( "H:i:s" ). "</br>" ; //此处设一个计时器 结束时间 ?> |
查看一下网页显示结果:
好像也很快,也不到1秒钟。
下面我再用时间戳试一下:
修改一下PHP语句
第一种方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<?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 . "</br>" ; $end_time =microtime(true); //获取程序执行结束的时间 $elapse = $end_time - $start_time ; //获取差值 echo "消耗时间" . $elapse . "</br>" ; //此处设一个计时器 结束时间 ?> |
得到结果:
第二种方法:
1
2
3
4
5
6
7
8
9
10
11
12
|
<?php $file_path = 'test.txt' ; //文件路径 此处找一个1094644行的TXT文件 test.txt set_time_limit(0); $start_time =microtime(true); //获取程序执行开始的时间 $line = count (file( $file_path )); //输出行数; echo $line . "</br>" ; $end_time =microtime(true); //获取程序执行结束的时间 $elapse = $end_time - $start_time ; //获取差值 echo "消耗时间" . $elapse . "</br>" ; //此处设一个计时器 结束时间 ?> |
得到结果:
这种方法测试的可以明显看出来,还是第一种方法要好的多。
博 主 :夏秋初
地 址 :https://www.cnblogs.com/xiaqiuchu/articles/11030973.html
如果对你有帮助,可以点一下 推荐 或者 关注 吗?会让我的分享变得更有动力~
转载时请带上原文链接,谢谢。
地 址 :https://www.cnblogs.com/xiaqiuchu/articles/11030973.html
如果对你有帮助,可以点一下 推荐 或者 关注 吗?会让我的分享变得更有动力~
转载时请带上原文链接,谢谢。