位置: 编程技术 - 正文

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)

  • 运输发票税率6%和3%区别在哪
  • 怎么下载税控盘开票软件
  • 退回企业所得税的账务处理
  • 滞纳税款和滞纳金比例
  • 报税怎么操作流程图
  • 所得税汇算清缴补税的会计处理
  • 会员退费怎么算
  • 带薪年假是入职就有还是要等一年以后
  • 红字发票盖章吗
  • 股东入股的标准
  • 个人所得税里累计专项扣除是什么意思
  • 票货分离怎么处理
  • 现金折扣为什么计入主营业务收入
  • 购买固定资产进项税率
  • 税率和征收率的含义和区别
  • 用银行存款上交上月税金会计分录
  • 帮客户垫付的费用有发票如何做账科目
  • 民办非企业能开据服务发票吗?
  • 出口退税审核系统疑点
  • 小规模纳税人销售农产品税率是多少
  • 发票密码区出来了一点
  • 中小企业货币资金内部控制案例
  • 印花税按含税收入还是不含税收入
  • 补缴纳以前年度企业所得税税率如何论定
  • 城镇土地使用税征收标准及计算方法
  • 小规模纳税人的增值税怎么算
  • 财务管理终值和现值
  • 增值税当月申报次月缴纳吗
  • PHP:ereg_replace()的用法_Regex正则函数
  • unik面部识别怎么用
  • thinkphp5数据库操作
  • 长期债权投资收回的利息 现金流量表
  • 煤炭贸易公司账务大全
  • 无形资产研发成功后的支出
  • PHP:imagefilltoborder()的用法_GD库图像处理函数
  • 小微企业没有进账,可以不报税吗
  • 基于随机森林的气温预测
  • vue router怎么传值
  • web自动化测试平台
  • python 如何调用c
  • 水费发票掉了可以补打吗
  • 小规模纳税人研发费用加计扣除优惠政策
  • 发票的普票和专票什么区别
  • 税收优惠属于政府补助
  • 用vue-cli搭建项目
  • ps高反差保留怎么弄
  • 织梦艺嫣跳舞
  • 印花税免税项目有哪些
  • 进项税额有留底税额吗
  • 福利费要分部门吗
  • 建筑企业结转成本依据准则
  • 办公用品普通发票税点多少
  • 单位财务报销制度和流程
  • 哪些公司可以开电费发票
  • 税务发票金额可以增加吗?
  • 工程奖金计入什么科目
  • 坏账准备怎么做底稿
  • 印花税城建税教育费附加等其他税种的纳税申报
  • 费用冲账是什么意思
  • 预缴所得税弥补以前年度亏损
  • 本年利润是负数怎么写凭证
  • 为什么电脑显示windows10即将终止服务
  • Win10系统玩坦克世界不能打字怎么回事
  • windows升级后照片不见了
  • 升级win10后东西还在吗
  • win8是怎么样的
  • 微信小程序倒计时乱跳
  • android:Fragment动画那点事
  • Python中MySQLdb和torndb模块对MySQL的断连问题处理
  • 批处理forfiles
  • js每天的定时任务
  • 请问在javascript程序中
  • 猫的喵喵
  • 2016年最火的歌曲排行榜前十名
  • adb查看ip地址
  • 瀑布流水风景图片
  • boss直聘怎么注销账号
  • 大连个体营业执照怎么办
  • 卫生志愿服务活动
  • 电脑上怎么登录个人网络
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设