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 相关文章推荐
ftp类(myftp.php)
Oct 09 PHP
PHP 向右侧拉菜单实现代码,测试使用中
Nov 03 PHP
PHP,ASP.JAVA,JAVA代码格式化工具整理
Jun 15 PHP
php操作excel文件 基于phpexcel
Jul 02 PHP
自己在做项目过程中学到的PHP知识收集
Aug 20 PHP
php警告Creating default object from empty value 问题的解决方法
Apr 02 PHP
php输出xml属性的方法
Mar 19 PHP
PHP 应用容器化以及部署方法
Feb 12 PHP
PHP实现打包zip并下载功能
Jun 12 PHP
Yii框架使用PHPExcel导出Excel文件的方法分析【改进版】
Jul 24 PHP
TP5(thinkPHP5)框架使用ajax实现与后台数据交互的方法小结
Feb 10 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
Mar 26 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调用MsSQL存储过程使用内置RETVAL获取过程中的return值
2013/07/03 PHP
PHP中使用register_shutdown_function函数截获fatal error示例
2015/04/21 PHP
yii2中关于加密解密的那些事儿
2018/06/12 PHP
JavaScript Base64编码和解码,实现URL参数传递。
2006/09/18 Javascript
原生Js实现元素渐隐/渐现(原理为修改元素的css透明度)
2013/06/24 Javascript
公共js在页面底部加载的注意事项介绍
2013/07/18 Javascript
js展开闭合效果演示代码
2013/07/24 Javascript
Jquery解析Json格式数据过程代码
2014/10/17 Javascript
JavaScript中的Primitive对象封装介绍
2014/12/31 Javascript
js文本框输入内容智能提示效果
2015/12/02 Javascript
js基于setTimeout与setInterval实现多线程
2016/06/17 Javascript
关于数据与后端进行交流匹配(点亮星星)
2016/08/03 Javascript
简单实现js悬浮导航效果
2017/02/05 Javascript
Angular2搜索和重置按钮过场动画
2017/05/24 Javascript
快速将Vue项目升级到webpack3的方法步骤
2017/09/14 Javascript
微信小程序如何实现radio单选框单击打勾和取消
2020/01/21 Javascript
在Uni中使用Vue的EventBus总线机制操作
2020/07/31 Javascript
在Python中marshal对象序列化的相关知识
2015/07/01 Python
Android基于TCP和URL协议的网络编程示例【附demo源码下载】
2018/01/23 Python
在PyCharm的 Terminal(终端)切换Python版本的方法
2019/08/02 Python
python离线安装外部依赖包的实现
2020/02/13 Python
Pycharm的Available Packages为空的解决方法
2020/09/18 Python
Python 多进程、多线程效率对比
2020/11/19 Python
详解CSS3中Media Queries的相关使用
2015/07/17 HTML / CSS
使用CSS3的appearance属性改变元素的外观的方法
2015/12/12 HTML / CSS
TOWER London官网:鞋子、靴子、运动鞋等
2019/07/14 全球购物
英国伦敦的睡衣品牌:Asceno
2019/10/06 全球购物
匈牙利超级网上商店和优惠:Alza.hu
2019/12/17 全球购物
业务员薪酬管理制度
2014/01/15 职场文书
幼儿园评语大全
2014/04/17 职场文书
2014年环卫工作总结
2014/11/22 职场文书
2015年校医个人工作总结
2015/07/24 职场文书
Python如何利用正则表达式爬取网页信息及图片
2021/04/17 Python
关于MySQL中的 like操作符详情
2021/11/17 MySQL
Python+腾讯云服务器实现每日自动健康打卡
2021/12/06 Python
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/07 PostgreSQL