php超快高效率統(tǒng)計大文件行數(shù)
更新時間:2015年07月05日 15:58:41 投稿:hebedich
這篇文章主要介紹了php超快高效率統(tǒng)計大文件行數(shù)的相關(guān)資料,需要的朋友可以參考下
用php獲取文件行數(shù),網(wǎng)上給出的答案通常是使用file這樣一次性讀取,這樣不適用在大文件。通常大文件大家用while來循環(huán)的逐行統(tǒng)計,這樣的效率太慢
最快的方法是多行統(tǒng)計,每次讀取N個字節(jié),然后再統(tǒng)計行數(shù),這樣比逐行效率高多了。
測試情況,文件大小 3.14 GB
第1次:line: 13214810 , time:56.2779 s;
第2次:line: 13214810 , time:49.6678 s;
/*
* 高效率計算文件行數(shù)
* @author axiang
*/
function count_line($file){
$fp=fopen($file, "r");
$i=0;
while(!feof($fp)) {
//每次讀取2M
if($data=fread($fp,1024*1024*2)){
//計算讀取到的行數(shù)
$num=substr_count($data,"\n");
$i+=$num;
}
}
fclose($fp);
return $i;
}
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
相關(guān)文章
在PHP程序中運行Python腳本(接收數(shù)據(jù)及傳參)的方法詳解
這篇文章主要為大家詳細介紹一下,如何在php程序中運行Python腳本以及如何使用python返回josn數(shù)據(jù)供php使用,感興趣的小伙伴可以了解一下2022-09-09

