這篇文章主要介紹了php超快高效率統計大文件行數的相關資料,需要的朋友可以參考下
用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;
- }
以上所述就是本文的全部內容了,希望大家能夠喜歡。
新聞熱點
疑難解答