轉自: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>"
;
//此處設一個計時器 結束時間
?>
|
得到結果:

這種方法測試的可以明顯看出來,還是第一種方法要好的多。
