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新手上路(九)
Oct 09 PHP
PHP小程序自动提交到自助友情连接
Nov 24 PHP
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
Aug 12 PHP
PHP中实现中文字符进制转换原理分析
Dec 06 PHP
分享PHP header函数使用教程
Sep 05 PHP
三种php连接access数据库方法
Nov 11 PHP
PHP针对常规模板引擎中与CSS/JSON冲突的解决方法
Aug 19 PHP
destoon切换城市后实现logo旁边显示地区名称的方法
Aug 21 PHP
详解PHP原生DOM对象操作XML的方法
Oct 17 PHP
Yii实现文章列表置顶功能示例
Oct 18 PHP
php数据库操作model类(使用__call方法)
Nov 16 PHP
thinkPHP中钩子的使用方法实例分析
Nov 16 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
如何给phpadmin一个保护
2006/10/09 PHP
php自定义函数之递归删除文件及目录
2010/08/08 PHP
PHP利用REFERER根居访问来地址进行页面跳转
2013/09/28 PHP
ThinkPHP快速入门实例教程之数据分页
2014/07/01 PHP
php微信支付之APP支付方法
2015/03/04 PHP
ThinkPHP6.0如何利用自定义验证规则规范的实现登陆
2020/12/16 PHP
jQuery插件 tabBox实现代码
2010/02/09 Javascript
passwordStrength 基于jquery的密码强度检测代码使用介绍
2011/10/08 Javascript
JavaScript闭包函数访问外部变量的方法
2014/08/27 Javascript
Node.js websocket使用socket.io库实现实时聊天室
2017/02/20 Javascript
jQuery Tree Multiselect使用详解
2017/05/02 jQuery
深入理解node.js http模块
2018/01/24 Javascript
layui 根据后台数据动态创建下拉框并同时默认选中的实例
2019/09/02 Javascript
JavaScript实现简单随机点名器
2019/11/21 Javascript
[07:12]2014DOTA2西雅图国际邀请赛 黑马Liquid专题采访
2014/07/12 DOTA
[01:16:01]VGJ.S vs Mski Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
[45:50]完美世界DOTA2联赛PWL S3 CPG vs Forest 第二场 12.16
2020/12/17 DOTA
对于Python中RawString的理解介绍
2016/07/07 Python
Pycharm学习教程(7)虚拟机VM的配置教程
2017/05/04 Python
Python实现的插入排序算法原理与用法实例分析
2017/11/22 Python
python+pandas分析nginx日志的实例
2018/04/28 Python
对python中的高效迭代器函数详解
2018/10/18 Python
Python正则表达式和re库知识点总结
2019/02/11 Python
Python高阶函数、常用内置函数用法实例分析
2019/12/26 Python
python中for in的用法详解
2020/04/17 Python
中外合拍动画首获奥斯卡提名,“上海出品”《飞奔去月球》能否拿下最终大奖?
2021/03/16 国漫
送货司机岗位职责
2013/12/11 职场文书
女子职高个人自荐书
2014/02/01 职场文书
学校消防演习方案
2014/02/19 职场文书
办理信用卡收入证明范例
2014/09/13 职场文书
社区公民道德宣传日活动总结
2015/03/23 职场文书
在人间读书笔记
2015/06/30 职场文书
三十年同学聚会致辞
2015/07/28 职场文书
《正比例》教学反思
2016/02/23 职场文书
漫画「狩龙人拉格纳」公开TV动画预告图
2022/03/22 日漫
详解Golang如何实现支持随机删除元素的堆
2022/09/23 Python