位置: 编程技术 - 正文

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)

  • 进项税额转出的几种情况会计分录
  • 计算企业所得税分录
  • 采用现金支付
  • 收据税前扣除是多少
  • 发票专用章和财务章区别
  • 出口未开票怎么会计处理
  • 退回资本金要交税吗
  • 应交税费贷方有余额,怎么销账
  • 季初资产总额是1,季末是0怎么填
  • 金蝶k3生产领料单怎么导入
  • 房地产开发企业预缴增值税
  • 超范围经营如何举报
  • 计提高温补贴会计分录
  • 报销发票会计怎么处理
  • 个体户金税盘清卡失败怎么办
  • 税务登记号和统计号区别
  • 广告费定金属于什么科目
  • 新公司开业的祝福语
  • 金蝶增加银行存款账户,期间不对
  • 设备修理费
  • 企业所得税季度申报表A类
  • 计提社保公司承担部分怎么算
  • 腾讯手游助手使命召唤怎么滑铲
  • 新固定资产的六大类型
  • 以前年度应付款项怎么调账
  • shpc32.exe - shpc32是什么进程 有什么用
  • php中运算符
  • 单用户结构是什么
  • 资产划转增值税 开票怎么开
  • 财务管理是如何工作的
  • 雪花 (© TothGaborGyula/Getty Images Plus)
  • 工会经费计税依据是上年工资还是当年工资
  • 转让企业要交什么税
  • 微调是调哪里
  • css page-break-after
  • 公司少申报个税
  • 外来原始凭证审核内容
  • 融资租赁首付租金会计账务处理
  • sql自定义
  • 哪些科目会影响损益
  • 租赁物品损坏赔偿金额标准
  • 可以假设两种情形吗
  • 小规模差额征税的账务处理
  • 小规模纳税人转一般纳税人当月如何申报
  • 业务招待费扣除标准是多少
  • 应收账款收不回来怎么处理分录
  • 研发支出费用化和资本化的界定
  • 职工教育经费调增
  • 电子商务会计怎么样
  • 网上订机票怎么拿报销凭证
  • 房屋租赁账务如何做分录
  • 产成品和半成品需要结转嘛
  • 等额本金还款计算公式
  • 费用利润率的意思
  • 公司市场部职能
  • 新手入门会计
  • 企业要建账需留什么资料
  • 怎么验证触发器的执行
  • 最新mysql数据库安装步骤
  • freebsd 安装
  • 系统维护的主要内容有哪些
  • ubuntu系统中怎么安装mathematica13.1.0
  • 进程acore已停止一直出现怎么办
  • linux vs windows
  • caddll丢失
  • jQuery+PHP实现可编辑表格字段内容并实时保存
  • cocos2dx schedule
  • 如何使用form表单
  • 基于javascript的毕业设计选题
  • canvas的原理
  • jquery validator
  • JavaScript中的this指向
  • Python内置的HTTP协议服务器SimpleHTTPServer使用指南
  • js命名函数
  • python flask框架 web服务器
  • 国家税务总局张局长
  • 发票查询为什么查不出来
  • 如何查询企业税务评级
  • 小规模纳税人一年500万一年怎么算
  • 长沙市各个区的县市排名
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设