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


Posted in PHP onJuly 05, 2015

用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 相关文章推荐
第十四节 命名空间 [14]
Oct 09 PHP
两种php调用Java对象的方法
Oct 09 PHP
基于mysql的论坛(1)
Oct 09 PHP
php中常用字符串处理代码片段整理
Nov 07 PHP
PHP异常Parse error: syntax error, unexpected T_VAR错误解决方法
May 06 PHP
php实现读取内存顺序号
Mar 29 PHP
纯php生成随机密码
Oct 30 PHP
PHP微信开发之有道翻译
Jun 23 PHP
PHP通过引用传递参数用法分析
Dec 01 PHP
thinkPHP5.0框架事务处理操作简单示例
Sep 07 PHP
浅谈php使用curl模拟多线程发送请求
Mar 08 PHP
在TP5数据库中四个字段实现无限分类的示例
Oct 18 PHP
PHP版QQ互联OAuth示例代码分享
Jul 05 #PHP
PHP 获取ip地址代码汇总
Jul 05 #PHP
PHP中$_SERVER使用说明
Jul 05 #PHP
php实现短信发送代码
Jul 05 #PHP
phpMyAdmin安装并配置允许空密码登录
Jul 04 #PHP
Ubuntu下安装PHP的mongodb扩展操作命令
Jul 04 #PHP
Cygwin中安装PHP方法步骤
Jul 04 #PHP
You might like
图解上海144收音机
2021/03/02 无线电
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
2016/01/12 PHP
深入浅析用PHP实现MVC
2016/03/02 PHP
laravel + vue实现的数据统计绘图(今天、7天、30天数据)
2018/07/31 PHP
JQuery模板插件 jquery.tmpl 动态ajax扩展
2011/11/10 Javascript
html5的自定义data-*属性和jquery的data()方法的使用示例
2013/08/21 Javascript
JavaScript修改css样式style动态改变元素样式
2013/12/16 Javascript
js获取鼠标点击的位置实现思路及代码
2014/05/09 Javascript
javascript学习笔记整理(概述、变量、数据类型简介)
2015/10/25 Javascript
微信小程序 wx:key详细介绍
2016/10/28 Javascript
浅谈webpack4.x 入门(一篇足矣)
2018/09/05 Javascript
vue实现打印功能的两种方法
2018/09/07 Javascript
浅谈React碰到v-if
2018/11/04 Javascript
茶余饭后聊聊Vue3.0响应式数据那些事儿
2019/10/30 Javascript
在js文件中引入(调用)另一个js文件的三种方法
2020/09/11 Javascript
鸿蒙系统中的 JS 开发框架
2020/09/18 Javascript
JavaScript 防盗链的原理以及破解方法
2020/12/29 Javascript
python开发之thread实现布朗运动的方法
2015/11/11 Python
基于python的七种经典排序算法(推荐)
2016/12/08 Python
用Python实现随机森林算法的示例
2017/08/24 Python
python字典值排序并取出前n个key值的方法
2018/10/17 Python
详解Python3除法之真除法、截断除法和下取整对比
2019/05/23 Python
在Python中实现函数重载的示例代码
2019/12/12 Python
django自定义非主键自增字段类型详解(auto increment field)
2020/03/30 Python
django haystack实现全文检索的示例代码
2020/06/24 Python
Windows下Sqlmap环境安装教程详解
2020/08/04 Python
pycharm激活方法到2099年(激活流程)
2020/09/22 Python
Python3.9.1中使用split()的处理方法(推荐)
2021/02/07 Python
HTML5实现预览本地图片
2016/02/17 HTML / CSS
亚洲最大旅游体验平台:KKday
2017/10/21 全球购物
2019年分享net面试的经历和题目
2016/08/07 面试题
新闻传媒系求职信范文
2014/04/19 职场文书
竞选宣传委员演讲稿
2014/05/24 职场文书
共产党员岗位承诺书
2014/05/29 职场文书
工程学毕业生自荐信
2014/06/14 职场文书
初级职称评定工作总结
2015/08/13 职场文书