转自: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>"
;
//此处设一个计时器 结束时间
?>
|
得到结果:
这种方法测试的可以明显看出来,还是第一种方法要好的多。