用php獲取文件行數,網上給出的答案通常是使用file這樣一次性讀取,這樣不適用在大文件。通常大文件大家用while來循環的逐行統計,這樣的效率太慢
最快的方法是多行統計,每次讀取N個字節,然后再統計行數,這樣比逐行效率高多了。
測試情況,文件大小 3.14 GB
第1次:line: 13214810 , time:56.2779 s;
第2次:line: 13214810 , time:49.6678 s;
/*
* 高效率計算文件行數
* @author axiang
*/
function count_line($file){
$fp=fopen($file, "r");
$i=0;
while(!feof($fp)) {
//每次讀取2M
if($data=fread($fp,1024*1024*2)){
//計算讀取到的行數
$num=substr_count($data,"/n");
$i+=$num;
}
}
fclose($fp);
return $i;
}
以上所述就是本文的全部內容了,希望大家能夠喜歡。
新聞熱點
疑難解答