php超快高效率统计大文件行数

5年以前  |  阅读数:913 次  |  编程语言: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;
    }

以上所述就是本文的全部内容了,希望大家能够喜欢。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例