位置: 编程技术 - 正文

php使用file函数、fseek函数读取大文件效率对比分析(php file函数)

发布时间:2024-01-17

推荐整理分享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)

  • 个人向公司提供劳务,开发票
  • 企业所得税从业人数怎么填,依据什么填写
  • 小规模纳税人工程款税率是多少
  • 佣金和手续费支出 纳税调整
  • 现金流量表和其他表的勾稽关系
  • 文化建设费征收依据
  • 个税申报专项扣除怎么填
  • 销售费用可以提取现金吗
  • 农业合作社享受优惠政策
  • 增值税发票税控开票软件怎么下载
  • 预缴增值税项目编号填写错误怎么办
  • 会计核算体系的中心环节是什么
  • 工业企业会计报告
  • 负债必须通过转让来清偿
  • 结转本年度收入
  • 关联方借款的企业所得税政策
  • 材料盘亏可收回成本吗
  • 企业申请核定征收的要求
  • 税务局即征即退自查报告
  • 营改增后建筑业开票规定
  • 高新技术企业认定管理办法
  • 所得税按利润总额的25%计算缴纳
  • 小企业财务报表模板免费下载
  • 税基式减免的内容有哪些?
  • 虚增利润
  • ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法 原创
  • php字符串赋值
  • 投资收益怎么做不影响利润
  • uniapp多端兼容
  • php变量用什么符号
  • 二手房转让中转什么意思
  • 阿里云天池大赛pdf
  • 电力行业增值税率
  • 税务安全证书不成功什么意思
  • 企业购进的商品是什么
  • 基于专业性的家校双向互动,需要家长的学校教育参与
  • 图像分类实战
  • 取得进项税发票什么时期内可以抵扣
  • 技术软件开发
  • 工资计提和发放能不能在一个月
  • 出纳报销时应注意什么
  • 织梦怎么用模板建站
  • 企业对外付汇怎么交税
  • 个体户需要
  • 法人向公司账户打款
  • 存货报废进项税额需要转出吗
  • 住宿费用专票可以抵扣吗
  • 小规模纳税人涉嫌虚开发票
  • 股权变更产生的税费
  • 收到专票未抵扣能购买方开红字发票吗
  • 基本户注销了还能查询流水吗
  • 残保金不申报可以补缴吗
  • 应付职工薪酬的会计科目
  • 启动sqlserver服务的命令
  • mysql5.7.29安装
  • windows字体不显示
  • win7系统如何安装蓝牙驱动
  • 如何让电脑系统更快
  • 编程乱码
  • Linux一键安装ftp
  • geom是什么文件
  • os x10.8
  • windows102021年更新
  • win7关闭操作中心图标
  • window10的ie
  • mac2019强制关机
  • 下列有关javascript中call和apply
  • sequelize-cli
  • windows python2和python3共存
  • 在其他地方 英文
  • javascript入门基础
  • django批量创建数据
  • javascript 类型
  • 保险的佣金一般是多少
  • 对计划单列市税务局不服向谁复议
  • 税务局登记是什么
  • 企业以自有物业为单位
  • 福建生育登记证明电子版在哪查
  • 税务申报网上申报
  • 企业在开办过程中的具体流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号