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数组总结篇(一)
Sep 30 PHP
PHP 面向对象详解
Sep 13 PHP
php 强制下载文件实现代码
Oct 28 PHP
使用php计算排列组合的方法
Nov 13 PHP
Yii配置文件用法详解
Dec 04 PHP
PHP 微信扫码支付源代码(推荐)
Nov 03 PHP
PHP  Yii清理缓存的实现方法
Nov 10 PHP
详解Yii实现分页的两种方法
Jan 14 PHP
php使用str_shuffle()函数生成随机字符串的方法分析
Feb 17 PHP
php中Ioc(控制反转)和Di(依赖注入)
May 07 PHP
PHP实现下载远程图片保存到本地的方法
Jun 19 PHP
PHP fclose函数用法总结
Feb 15 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
php利用header函数实现文件下载时直接提示保存
2009/11/12 PHP
PHP简单生成缩略图相册的方法
2015/07/29 PHP
thinkPHP商城公告功能开发问题分析
2016/12/01 PHP
PHP实现数据库统计时间戳按天分组输出数据的方法
2017/10/10 PHP
php语言注释,单行注释和多行注释
2018/01/21 PHP
php和js实现根据子网掩码和ip计算子网功能示例
2019/11/09 PHP
如何运行/调试你的PHP代码
2020/10/23 PHP
SyntaxHighlighter代码加色使用方法
2008/09/07 Javascript
javascript中的prototype属性使用说明(函数功能扩展)
2010/08/16 Javascript
THREE.JS入门教程(5)你应当知道的十件事
2013/01/24 Javascript
使用javascript实现ListBox左右全选,单选,多选,全请
2013/11/07 Javascript
javascript中直接引用Microsoft的COM生成Word
2014/01/20 Javascript
Javascript常用小技巧汇总
2015/06/24 Javascript
JS实现网页每隔3秒弹出一次对话框的方法
2015/11/09 Javascript
jQuery实现带玻璃流光质感的手风琴特效
2015/11/20 Javascript
JavaScript实现页面无操作倒计时退出
2016/10/22 Javascript
jquery实现手机端单店铺购物车结算删除功能
2017/02/22 Javascript
Nuxt.js踩坑总结分享
2018/01/18 Javascript
jquery向后台提交数组的代码分析
2020/02/20 jQuery
[38:41]2014 DOTA2国际邀请赛中国区预选赛 LGD VS CNB
2014/05/22 DOTA
[07:52]2014DOTA2 TI逗比武士游V社解说背后的故事
2014/07/10 DOTA
Python字符串拼接、截取及替换方法总结分析
2016/04/13 Python
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
python微信跳一跳系列之棋子定位像素遍历
2018/02/26 Python
python用requests实现http请求代码实例
2019/10/31 Python
python3+selenium获取页面加载的所有静态资源文件链接操作
2020/05/04 Python
基于python实现可视化生成二维码工具
2020/07/08 Python
使用 CSS3 中@media 实现网页自适应的示例代码
2020/03/24 HTML / CSS
css3的focus-within选择器的使用
2020/05/11 HTML / CSS
美国保健品专家:Life Extension
2018/05/04 全球购物
希特勒的演讲稿
2014/05/23 职场文书
授权委托书怎么写
2014/09/25 职场文书
迟到检讨书2000字(精选篇)
2014/10/07 职场文书
事业单位个人查摆问题及整改措施
2014/10/28 职场文书
投资入股协议书
2016/03/22 职场文书
Anaconda安装pytorch和paddle的方法步骤
2022/04/03 Python