位置: 编程技术 - 正文

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)

  • 简易计税会计分录举例
  • 滴滴电子普通发票怎么抵扣
  • 打印的电子发票需要盖章么
  • 应收账款平均占用资金的变动额
  • 个人转让住房要交哪些税费?
  • 水电费的进项税额能抵扣吗
  • 增值税进项税转出所得税调整吗
  • 存货算动产吗
  • 实收资本重复交的印花税可以申请退税吗?
  • 特定业务计算的应纳税所得额是什么意思
  • 协议报价税率与开出的发票不一致怎么办?
  • 承包食堂管理费用收取的依据
  • 城市建设维护税怎么计算
  • 滞纳金属于罚没支出还是其他
  • 公司购买新办公楼装修计入什么科目
  • 上级工会返还的会计分录
  • 收到税局代增值税专用发票已作废的退款怎么做账
  • 无形资产怎么衡量
  • 三代税款手续费是什么意思
  • 跨年度增值税发票作废怎么退税
  • 车辆哪些费用计税
  • iphone和电脑同步
  • 编制收款凭证的有哪些
  • 安全模式是个啥
  • 一场雷雨还是一阵雷雨
  • 总分账与明细账关系
  • 常用的前端大屏软件
  • PHP:imageantialias()的用法_GD库图像处理函数
  • php统计目录中文怎么写
  • thinkphp框架入门
  • php的session和cookie实现登录
  • uni-app原理
  • wordpress文章保存在哪里
  • 外贸企业出口免税政策
  • 研发费用算期间费用吗
  • 融资租入固定资产的账务处理
  • 成本分配明细表
  • 管理不善造成的货物损失进项税可以抵扣吗
  • 工会经费残保金怎么申报
  • 母公司的资质怎样才能转给子公司
  • discuz怎么使用
  • 类型string
  • 个体对公账户是什么意思
  • sql 判断字符串中是否包含数字
  • 小规模纳税人出售使用过固定资产
  • 发票一直没验旧会有什么影响
  • 收回股权投资
  • 成本票下月的可以入上月的成本吗
  • 账上存货太多实收怎么办
  • 母公司代子公司收款,子公司开具发票
  • 过路费计入差旅费还是车辆
  • 什么是电子发票如何打印报销
  • 篮球俱乐部归什么部门管理
  • 简易征收能抵扣进项税吗
  • 增值税版本升级
  • 建筑升降机厂家
  • 怎么开劳务派遣工作证明
  • MySQL 5.6 中 TIMESTAMP 的变化分析
  • win10屏幕显示
  • scanfile.exe
  • win8系统如何关闭杀毒系统
  • centos6.5升级到7.2
  • pap是什么文件
  • win7电脑显示器颜色不正常怎么办
  • win10 edge浏览器
  • jquery的用处
  • python 安装setup
  • python该怎么用
  • unity ui碰撞
  • shell脚本进程号
  • 字符串截取用什么方法
  • js定义数字
  • javascript设计简单计算机
  • 手把手教你自己做菜
  • python中文分词库
  • 晋税通注册
  • 高速公路过路费一公里多少钱
  • 南宁地方税务局网站
  • 补充协议交印花税嘛
  • 暂估收入入账冲回如何会计分录
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设