用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; }
以上所述就是本文的全部內容了,希望大家能夠喜歡。