位置: 编程技术 - 正文

PHP读取大文件的多种方法介绍(php读取文件的一部分)

发布时间:2024-01-12

推荐整理分享PHP读取大文件的多种方法介绍(php读取文件的一部分),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php读取php文件内容,php 读取大文件,php 读取大excel,php 读取大文件,php读取文件的函数是什么,php读取大文件的内容,php读取文件的函数,php读取大文件的内容,内容如对您有帮助,希望把文章链接给更多的朋友!

读取大文件一直是一个头痛的问题,我们像使用php开发读取小文件可以直接使用各种函数实现,但一到大文章就会发现常用的方法是无法正常使用或时间太长太卡了,下面我们就一起来看看关于php读取大文件问题解决办法,希望例子能帮助到各位。

在PHP中,对于文件的读取时,最快捷的方式莫过于使用一些诸如file、file_get_contents之类的函数,简简单单的几行代码就能 很漂亮的完成我们所需要的功能。但当所操作的文件是一个比较大的文件时,这些函数可能就显的力不从心, 下面将从一个需求入手来说明对于读取大文件时,常用的操作方法。

需求:有一个M的日志文件,大约有多万行, 用PHP返回最后几行的内容。

实现方法:

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

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

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

PHP读取大文件的多种方法介绍(php读取文件的一部分)

2.直接调用Linux的 tail 命令来显示最 后几行  在Linux命令行下,可以直接使用 tail -n access.log 很轻易的显示日志文件最后几行,可以直接用PHP来调用tail命令,执行PHP代码如下:

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

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

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

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

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

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

方法三

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

方法四,PHP的stream_get_line函数 ,读取快速,读取万条数据大文件,大概需要秒左右的时间!例子代码如下

标签: php读取文件的一部分

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

上一篇:PHP如何将XML转成数组(php xml转数组)

下一篇:PHP中file_exists使用中遇到的问题小结(php的file函数)

  • 吨位是啥意思
  • 独立法人和法人独资的区别
  • 企业之间交换房屋 契税
  • 增值税专用发票抵扣期限
  • 固定资产的原值是含税价?
  • 去新成立的公司
  • 食堂买菜无发票可以在费用中开支吗
  • 发票冲红需要什么手续
  • 公司的旅游费怎么处理
  • 一次性发放年终奖怎么税务筹划
  • 空白增值税报表在哪下载
  • 持有待售资产固定资产 要计提折旧吗
  • 购进商品交印花税
  • 不能够满足标准的产品为不合格品
  • 预付款发票未到如何入成本
  • 技术维护费280全额抵扣会计分录
  • 挂靠人员帮外单位人员缴纳社保如何做账
  • 简易计税的应交所得税
  • 汇总缴纳增值税附加税如何缴纳
  • 股权减资会计处理
  • 实物投资账务处理办法
  • 购进原材料影响营业利润吗
  • 车间低值易耗品有哪些
  • 招待费进项税额转出在申报表
  • 总公司中标分公司签约
  • 企业所得税汇算清缴操作流程
  • 无形资产的增值税怎么算
  • vue blob下载文件
  • 公司员工个税怎么交
  • 不良资产核销的影响
  • 注销税务时其他应付款的账务处理
  • 股东权益增加额/期初净经营资产
  • 合规检查中检查不了的设备
  • 购买净资产为负的资产
  • 常用的成本计算方法有哪些
  • 计提的附加税
  • Python人脸识别
  • 学计算机选择什么专业
  • 注意力机制的作用
  • 物流辅助服务要办许可证吗
  • 水利基金忘记申报怎么查
  • 关于酒店采购
  • 分公司要不要银行开户
  • 物流破损拒收的理由
  • 在售楼部帮客户卖房犯法吗
  • mysql的命名规则
  • 海洋cms有安卓版下载
  • 制造费用和生产成本结转
  • 固定资产清理净残值怎么处理
  • 新会计准则有哪三个
  • 出售无形资产净损益
  • 员工公交费补贴怎么入账
  • 工程物资到货管理
  • 个体定期定额怎么征税
  • 运输开票的税点是多少
  • 自产的产品用于生产缴纳增值税
  • 养老保险 退钱
  • 勾选通行费发票后如何做分录
  • 跨年退货怎么处理账务
  • 网络发票管理办法细则
  • 工程开票金额大写怎么写
  • 购进中央空调可以抵税吗
  • 滞留专票会有什么风险
  • 单位委托单位
  • 跨服务器访问数据库
  • winxp 共享设置
  • 系统升级为中狼
  • html5+css3新特性
  • 创建nodejs 基于express项目
  • node 包管理
  • cocos2d rpg
  • 骨骼动画程序设计
  • js的脚本语言
  • for语句的执行过程图解
  • node.js异步编程
  • android中常用的adapter不包括
  • 四川国税局发票查询
  • 在医院如何开报告单
  • 一般纳税人企业所得税怎么征收
  • 买二手房土地证怎么过户
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号