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 相关文章推荐
php 远程关机操作的代码
Dec 05 PHP
深入理解PHP之require/include顺序 推荐
Jan 02 PHP
PHP通过正则表达式下载图片到本地的实现代码
Sep 19 PHP
使用淘宝IP库获取用户ip地理位置
Oct 27 PHP
php使用curl模拟登录后采集页面的例子
Nov 04 PHP
php 字符串压缩方法比较示例
Jan 23 PHP
php 解压rar文件及zip文件的方法
May 05 PHP
php中strstr、strrchr、substr、stristr四个函数的区别总结
Sep 22 PHP
php删除左端与右端空格的方法
Nov 29 PHP
PHP设计模式之抽象工厂模式实例分析
Mar 25 PHP
PHP常用正则表达式精选(推荐)
May 28 PHP
laravel框架查询数据集转为数组的两种方法
Oct 10 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
用Apache反向代理设置对外的WWW和文件服务器
2006/10/09 PHP
php中的时间处理
2006/10/09 PHP
php截取html字符串及自动补全html标签的方法
2015/01/15 PHP
PHP命令空间namespace及use的用法小结
2017/11/27 PHP
基于prototype的validation.js发布2.3.4新版本,让你彻底脱离表单验证的烦恼
2006/12/06 Javascript
基于JavaScript 类的使用详解
2013/05/07 Javascript
jquery模拟实现鼠标指针停止运动事件
2016/01/12 Javascript
jQuery实现的兼容性浮动层示例
2016/08/02 Javascript
JS常用倒计时代码实例总结
2017/02/07 Javascript
jquery插件ContextMenu设置右键菜单
2017/03/13 Javascript
解决vue-cli中stylus无法使用的问题方法
2017/06/19 Javascript
Vue Autocomplete 自动完成功能简单示例
2019/05/25 Javascript
解决vue项目获取dom元素宽高总是不准确问题
2020/07/29 Javascript
toString.call()通用的判断数据类型方法示例
2020/08/28 Javascript
vue 动态组件(component :is) 和 dom元素限制(is)用法说明
2020/09/04 Javascript
Python中动态获取对象的属性和方法的教程
2015/04/09 Python
关于python的bottle框架跨域请求报错问题的处理方法
2017/03/19 Python
分析Python中解析构建数据知识
2018/01/20 Python
详解Python中where()函数的用法
2018/03/27 Python
Python画柱状统计图操作示例【基于matplotlib库】
2018/07/04 Python
Django中如何防范CSRF跨站点请求伪造攻击的实现
2019/04/28 Python
将python依赖包打包成window下可执行文件bat方式
2019/12/26 Python
Pandas时间序列:重采样及频率转换方式
2019/12/26 Python
Python小白学习爬虫常用请求报头
2020/06/03 Python
python 制作磁力搜索工具
2021/03/04 Python
美国知名日用品连锁超市:Dollar General(多来店)
2017/01/14 全球购物
Expedia丹麦:全球领先的旅游网站
2018/03/18 全球购物
研究生求职推荐信范文
2013/11/30 职场文书
代理商会议邀请函
2014/01/27 职场文书
导购员的岗位职责
2014/02/08 职场文书
小学毕业感言500字
2014/02/28 职场文书
工地宣传标语
2014/06/18 职场文书
销售人才自我评价范文
2014/09/27 职场文书
基于python的matplotlib制作双Y轴图
2021/04/20 Python
Redis 配置文件重要属性的具体使用
2021/05/20 Redis
Python selenium的这三种等待方式一定要会!
2021/06/10 Python