转自: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' ;
$line = 0 ;
set_time_limit(0);
echo "开始时间:" . date ( "H:i:s" ). "</br>" ;
$fp = fopen ( $file_path , 'r' ) or die ( "open file failure!" );
if ( $fp ){
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' ;
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' ;
$line = 0 ;
set_time_limit(0);
$start_time =microtime(true);
$fp = fopen ( $file_path , 'r' ) or die ( "open file failure!" );
if ( $fp ){
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' ;
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>" ;
?>
|
得到结果:
这种方法测试的可以明显看出来,还是第一种方法要好的多。
|
请发表评论