位置: 编程技术 - 正文

php使用file函数、fseek函数读取大文件效率对比分析(php file函数)

编辑:rootadmin

推荐整理分享php使用file函数、fseek函数读取大文件效率对比分析(php file函数),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php_fileinfo作用,php操作文件的常用函数,php中file_put_contents,php中file,php file函数,php file_append,php中file,php__file__,内容如对您有帮助,希望把文章链接给更多的朋友!

php读取大文件可以使用file函数和fseek函数,但是二者之间效率可能存在差异,本文章向大家介绍php file函数与fseek函数实现大文件读取效率对比分析,需要的朋友可以参考一下。

1. 直接采用file函数来操作

由于 file函数是一次性将所有内容读入内存,而PHP为了防止一些写的比较糟糕的程序占用太多的内存而导致系统内存不足,使服务器出现宕机,所以默认情况下限制只能最大使用内存M,这是通过php.ini里的 memory_limit = M 来进行设置,这个值如果设置-1,则内存使用量不受限制。

下面是一段用file来取出这具文件最后一行的代码:

整个代码执行完成耗时 . (s)。

我机器是2个G的内存,当按下F5运行时,系统直接变灰,差不多分钟后才恢复过来,可见将这么大的文件全部直接读入内存,后果是多少严重,所以不在万 不得以,memory_limit这东西不能调得太高,否则只有打电话给机房,让reset机器了。

2.直接使用PHP的 fseek 来进行文件操作

php使用file函数、fseek函数读取大文件效率对比分析(php file函数)

这种方式是最为普遍的方式,它不需要将文件的内容全部读入内容,而是直接通过指针来操作,所以效率是相当高效的。在使用fseek来对文件进行操作时,也有多种不同的方法,效率可能也是略有差别的,下面是常用的两种方法:

方法一

首先通过fseek找到文件的最后一位EOF,然后找最后一行的起始位置,取这一行的数据,再找次一行的起始位置, 再取这一行的位置,依次类推,直到找到了$num行。

实现代码如下

整个代码执行完成耗时 0. (s)

方法二

还是采用fseek的方式从文件最后开始读,但这时不是一位一位的读,而是一块一块的读,每读一块数据时,就将读取后的数据放在一个buf里,然后通过换 行符(n)的个数来判断是否已经读完最后$num行数据。

实现代码如下

整个代码执行完成耗时 0.(s)。

方法三

整个代码执行完成耗时 0.(s)

标签: php file函数

本文链接地址:https://www.jiuchutong.com/biancheng/301444.html 转载请保留说明!

上一篇:php array_slice 取出数组中的一段序列实例

下一篇:php foreach如何跳出两层循环(详解)(php for each)

  • 印花税的缴纳方法包括哪几种
  • 财报中计提
  • 城建税借贷方向
  • 打印复印费的明细怎么开?
  • 工伤职工应享有的待遇及救济途径
  • 小规模纳税人企业所得税起征点
  • 增资后调减资本怎么计算
  • 提取备用金现金流量
  • 代收代付给个人
  • 增值税抵扣主要用于哪些税收?
  • 购买软件可以退款吗
  • 特定业务预缴所得税不能填写
  • 开了发票未收款
  • 百旺发票修复怎么弄
  • 差旅费中的车票可以抵扣进项税吗
  • 本期应付而未付工资挂账处理?
  • 农业生产用水水资源税
  • 如何查企业是否上市公司
  • 机票行程单可以报销用吗
  • 无法收回的应收款项计入什么科目
  • 进项发票没认证可以开红字申请单吗
  • wifi安全助手每日提现
  • php 错误和异常处理
  • 盆栽玉树的养殖方法
  • thinkphp多模块
  • 出口退税是怎么个流程
  • yolov5 workers
  • php和apache
  • 人工智能的几个发展阶段
  • 微信php源码
  • 建设工程项目设计质量控制的内容
  • watch跟computed区别
  • lspci命令显示
  • 投资房地产的后续计量有哪些
  • linux rc.d init.d
  • 营改增前取得的有形动产为标的物
  • python解密加密文件
  • 餐饮小微企业优惠政策2021
  • 企业财务准则最新
  • 合伙企业利润分配
  • 一般纳税人之间转让土地使用权交哪些税金
  • 差旅补助要计入成本吗
  • 会计的借记和贷记什么意思
  • 清洁费用属于哪个会计科目
  • 企业所得税季度申报表怎么填
  • 企业哪些进项税抵扣
  • 幼儿园账务处理实务
  • 小规模纳税人所得税怎么计算
  • 增值税期末留抵退税什么意思
  • 老板怎么从公户拿钱
  • 累计盈余的主要来源有
  • 公司向外借款给个人怎么做账
  • 免予缴纳增值税
  • 漏记以前年度财务费用怎么处理
  • 去年亏损今年盈利怎么弥补
  • 辞退补偿金入什么科目
  • MySQL 5.0.96 for Windows x86 32位绿色精简版安装教程
  • linux 用处
  • svaplayer.exe - svaplayer是什么进程 有何作用
  • win8怎么停止自动更新
  • window10快捷键不能用
  • 微软报错是什么意思
  • win8中文版怎么升级到win10
  • win101903更新安装失败
  • 电脑开机显示windows不可用
  • 获取windows的最新信息
  • cocos creator js ts
  • JavaScript浏览器扩展
  • log4j 日志文件太大
  • 局域网扫描器
  • javascript 表格
  • linux+php
  • nodejs thrift
  • shell脚本-n
  • rsa python3
  • 车辆缴纳购置税多少钱
  • 石家庄有线电视客服电话9688
  • 贵州泉源会计服务有限公司花溪店位置
  • 苏宁易购股份转增股本
  • 租房协议中怎样签字
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设