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

 更新时间:2015年07月05日 15:58:41   投稿:hebedich  
这篇文章主要介绍了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对gzip文件或者字符串解压实例参考

    php对gzip文件或者字符串解压实例参考

    要采集一个网站,目标站采用了gzip压缩传输网页,本来应该只要发送一个http头 Accept-Encoding: identity或者干脆不发送这个头等,就可以使目标站返回没有经过gzip压缩的页面了,不过很不幸,目标站无视客户端的请求,仍然返回gzip数据,造成乱码。
    2008-07-07
  • PHP实现HTML生成PDF文件的方法

    PHP实现HTML生成PDF文件的方法

    这篇文章主要介绍了PHP实现HTML生成PDF文件的方法,可实现linux中利用HTML2FPDF与wkhtmltoimage把网页html直接生成pdf格式的文件,需要的朋友可以参考下
    2014-11-11
  • php析构函数的简单使用说明

    php析构函数的简单使用说明

    与构造函数相反,在PHP5中,可以定义一个名为__destruct()的函数,称之为PHP5析构函数,PHP将在对象在内存中被销毁前调用析构函数,使对象在彻底消失之前完成一些工作。对象在销毁一般可以通过赋值为null实现。
    2015-08-08
  • 在PHP程序中运行Python脚本(接收数据及传参)的方法详解

    在PHP程序中运行Python脚本(接收数据及传参)的方法详解

    这篇文章主要为大家详细介绍一下,如何在php程序中运行Python脚本以及如何使用python返回josn数据供php使用,感兴趣的小伙伴可以了解一下
    2022-09-09
  • php动态绑定变量的用法

    php动态绑定变量的用法

    这篇文章主要介绍了php动态绑定变量的用法,涉及php变量的判定与动态定义的相关技巧,需要的朋友可以参考下
    2015-06-06
  • PHP针对JSON操作实例分析

    PHP针对JSON操作实例分析

    这篇文章主要介绍了PHP针对JSON操作的常用方法,实例分析了json转数组、数组转json等技巧与相关注意事项,需要的朋友可以参考下
    2015-01-01
  • 基于php的CMS中展示文章类实例分析

    基于php的CMS中展示文章类实例分析

    这篇文章主要介绍了基于php的CMS中展示文章类,涉及针对文章的各种常用设置与操作技巧,需要的朋友可以参考下
    2015-06-06
  • PHP自带方法验证邮箱是否存在

    PHP自带方法验证邮箱是否存在

    这篇文章主要为大家详细介绍了PHP自带方法验证邮箱是否存在,以及PHP自带方法验证URL、IP是否合法,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • PHP封装的HttpClient类用法实例

    PHP封装的HttpClient类用法实例

    这篇文章主要介绍了PHP封装的HttpClient类,可实现简单的GET、POST、Cookie、Session等功能,需要的朋友可以参考下
    2015-06-06
  • php中判断一个字符串包含另一个字符串的方法

    php中判断一个字符串包含另一个字符串的方法

    这篇文章主要为大家分享一下一个字符串包含另一个字符串的方法,主要使用了strpos或数组的方法实现
    2007-03-03

最新评论