位置: 编程技术 - 正文

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)

  • 特别关税是多少人民币
  • 集体房屋出租管理办法
  • 水资源费如何入账
  • 企业所得税税前扣除管理办法
  • 递延所得税费用在资产负债表哪一项
  • 增值税发票抵扣是什么意思
  • 记账凭证核算形式是会计核算中最基本的核算形式
  • 以固定资产投资的会计处理
  • 承兑汇票属于货款吗
  • 建筑公司可以开机械租赁发票吗
  • 会计核算过程中的计量尺度通常有
  • 收到去年的成本发票
  • 实收资本不是资产吗
  • 进口缴纳的关税通过什么核算
  • 本月进项大于销项怎么做会计分录
  • 研发样机是什么
  • 代驾费开增值税专票还是普票?
  • 公司汽车车险抵税多少
  • 以前年度补交的税款进什么科目?
  • 汽车销售公司买车后续维修保养
  • 公司法人变更账务需要重新建立吗
  • 房地产开发企业的土地使用权计入哪里
  • 进项税额抵扣欠税后怎么申报
  • 商场现金收入如何计算
  • 期间损益结转怎么结转
  • 消费税的计算公式推导过程
  • 个税逾期申报怎么缴纳罚款
  • 融资租入固定资产计提折旧吗
  • 境外代扣代缴所得税
  • 产品检测步骤
  • 最新企业会计准则
  • 委托贷款利息收入怎么开发票
  • 企业开票附加税
  • 职工教育经费怎么记账
  • 在linux系统中 用来存放系统所需
  • 非货币性资产交换和债务重组的区别
  • win10玩cf太卡怎么办
  • mid文件和midi文件
  • linux的基础知识
  • 债券利息收入属于什么会计科目
  • 装修费用如何做分录
  • 担保公司未到期责任准备金会计及税务处理案例
  • php docblocker
  • 对抗生成网络算法
  • 销售商品的收入属于收入吗
  • python分割语句
  • mongodb4.4.2安装教程
  • 购买汽车抵扣增值税
  • 个人所得税进什么科目
  • sql server 2008怎么用
  • windows下MySQL 5.7.3.0安装配置图解教程(安装版)
  • 电影卡购买
  • 个人住的房子要交房产税吗
  • 库存股属于什么账户
  • 银行承兑到期后未兑付
  • 同一控股下并合并的股票
  • 应付账款期初期末
  • 应收账款应付账款借贷方都表示什么
  • 不动产进项税额转出
  • 其他应收账款的会计分录
  • 商业承兑汇票是什么
  • sql Server 触发器的when的用法
  • mysql alter table命令修改表结构实例
  • windows vista电脑
  • centos6.8图形界面
  • dockers容器
  • 如何设置电脑从d盘启动
  • 系统运行缓慢解决方法
  • win8系统怎样
  • 删掉sam文件后无法开机
  • 问题的英语怎么读
  • js 获取ua
  • javascript create
  • dos删除指定后缀文件
  • Javascript中Array.prototype.map()详解
  • 医保预交金可以取出来吗
  • 国税发票查询能查出什么项目
  • 湖南省国家税务局历任局长
  • 奔驰购置税多少钱
  • 美国各州地税税率
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设