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删除数组中特定元素的两种方法

    PHP删除数组中特定元素的两种方法

    今天小编就为大家分享一篇关于PHP删除数组中特定元素的两种方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • php数组函数序列之array_keys() - 获取数组键名

    php数组函数序列之array_keys() - 获取数组键名

    array_keys() 函数返回包含数组中所有键名的一个新数组。如果提供了第二个参数,则只返回键值为该值的键名
    2011-10-10
  • php+mysql查询实现无限下级分类树输出示例

    php+mysql查询实现无限下级分类树输出示例

    这篇文章主要介绍了php+mysql查询实现无限下级分类树输出,结合实例形式分析了php+MySQL查询实现的树状分类输出功能,涉及php数据库查询与数组遍历等相关操作技巧,需要的朋友可以参考下
    2016-10-10
  • PHP简单实现合并2个数字键数组值的方法

    PHP简单实现合并2个数字键数组值的方法

    这篇文章主要介绍了PHP简单实现合并2个数字键数组值的方法,涉及php针对数组的遍历、判断、转换等相关操作技巧,需要的朋友可以参考下
    2017-05-05
  • 实现PHP多线程异步请求的3种方法

    实现PHP多线程异步请求的3种方法

    实现PHP多线程异步请求的方法有很多,在本文整理了3种不多的常用方法,大家可以参考下
    2014-01-01
  • PHP+jQuery实现滚屏无刷新动态加载数据功能详解

    PHP+jQuery实现滚屏无刷新动态加载数据功能详解

    这篇文章主要介绍了PHP+jQuery实现滚屏无刷新动态加载数据功能,涉及php动态读取数据库及加载数据实现滚屏无刷新效果的具体操作技巧,需要的朋友可以参考下
    2017-05-05
  • PHP操作Redis常用技巧总结

    PHP操作Redis常用技巧总结

    这篇文章主要介绍了PHP操作Redis常用技巧,结合实例形式总结分析了php针对redis的连接、认证、string、hash等操作技巧与注意事项,需要的朋友可以参考下
    2018-04-04
  • 深入php socket的讲解与实例分析

    深入php socket的讲解与实例分析

    本篇文章是对php中socket的讲解与实例进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • 使用PHP8提升开发效率的技巧分享

    使用PHP8提升开发效率的技巧分享

    PHP 8 是 PHP 语言的一个重要版本,引入了许多新特性和改进,旨在提高开发效率,本文将探讨一下PHP 8如何通过各种功能和语言改进来促进开发效率的提升,感兴趣的小伙伴可以了解下
    2023-11-11
  • PHP类的使用 实例代码讲解

    PHP类的使用 实例代码讲解

    用户定义的类,也是学好 PHP 所必备的条件之一。而 PHP 的类,和其它的面向对象语言比较起来,还算蛮单纯的。
    2009-12-12

最新评论