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 相关文章推荐
多文件上载系统完整版
Oct 09 PHP
一段php加密解密的代码
Jul 16 PHP
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
Apr 09 PHP
PHP imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
Nov 07 PHP
Yii操作数据库的3种方法
Mar 11 PHP
PHP中date与gmdate的区别及默认时区设置
May 12 PHP
Symfony2函数用法实例分析
Mar 18 PHP
值得分享的php+ajax实时聊天室
Jul 20 PHP
PHP CodeIgniter分页实例及多条件查询解决方案(推荐)
May 20 PHP
PHP构造二叉树算法示例
Jun 21 PHP
CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
Feb 28 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
Apr 04 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
全文搜索和替换
2006/10/09 PHP
php接口与接口引用的深入解析
2013/08/09 PHP
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
JavaScript去除空格的三种方法(正则/传参函数/trim)
2013/02/06 Javascript
使用javascript实现有效时间的控制,并显示将要过期的时间
2014/01/02 Javascript
JavaScript检测鼠标移动方向的方法
2015/05/22 Javascript
jQuery移动端图片上传组件
2016/06/12 Javascript
JS制作类似选项卡切换的年历
2016/12/03 Javascript
解析Javascript单例模式概念与实例
2016/12/05 Javascript
简单理解js的prototype属性及使用
2016/12/07 Javascript
详解vue2.0的Element UI的表格table列时间戳格式化
2017/06/13 Javascript
详解在express站点中使用ejs模板引擎
2017/09/21 Javascript
vue实现提示保存后退出的方法
2018/03/15 Javascript
webpack实践之DLLPlugin 和 DLLReferencePlugin的使用教程
2019/06/10 Javascript
微信小程序实现上传多张图片、删除图片
2020/07/29 Javascript
[02:56]DOTA2英雄基础教程 巨魔战将
2013/12/10 DOTA
[01:00:53]2018DOTA2亚洲邀请赛3月29日 小组赛B组 iG VS Secret
2018/03/30 DOTA
c++生成dll使用python调用dll的方法
2014/01/20 Python
Python实现的简单hangman游戏实例
2015/06/28 Python
python实现爬虫统计学校BBS男女比例之多线程爬虫(二)
2015/12/31 Python
python实现可以断点续传和并发的ftp程序
2016/09/13 Python
Python 多进程和数据传递的理解
2017/10/09 Python
python实现随机漫步方法和原理
2019/06/10 Python
利用Python绘制有趣的万圣节南瓜怪效果
2019/10/31 Python
使用Python测试Ping主机IP和某端口是否开放的实例
2019/12/17 Python
HTML5学习笔记之html5与传统html区别
2016/01/06 HTML / CSS
100%羊绒:NakedCashmere
2020/08/26 全球购物
后备干部考察材料
2014/02/12 职场文书
区长工作作风个人整改措施
2014/10/01 职场文书
玩手机检讨书1000字
2014/10/20 职场文书
离职报告范文
2014/11/04 职场文书
幼儿园开学家长寄语(2016春季)
2015/12/03 职场文书
2019财务转正述职报告
2019/06/27 职场文书
Mysql基础之常见函数
2021/04/22 MySQL
python使用pymysql模块操作MySQL
2021/06/16 Python
5行Python代码实现一键批量扣图
2021/06/29 Python