分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

【实战代码】PHP实现读取一个1G的文件大小

发布时间:2023-09-06 01:11责任编辑:傅花花关键词:PHP

本文地址:http://www.cnblogs.com/aiweixiao/p/7535351.html

欢迎关注我的微信公众号哈 “ 程序员的文娱情怀” http://t.cn/RotyZtu

  【背景】:由于 file函数是一次性将所有内容读入内存,而php为了防止一些写的比较糟糕的程序占用太多的内存而导致系统内存不足,使服务器出现宕机,所以要想点好办法。

  【思路】:

01 思路1:利用php执行linux的命令,将一个文件内容(a.log)复制到另一个文件中(b.log)cat a.log >>b.log02 思路2:用php执行linux的head命令,获取内容,一行行写入另一个文件(b.log)中。cat a.log|wc -lsed -n ‘1 p‘ a.logfileputcontents(‘b.log’, $content, FILE_APPEND);

 【代码实现】:

 1 ?//02.读取1G的文件内容 2 ?public function testGetLarge() 3 ?{/*{{{*/ 4 ?????#01. 方法1 直接cat后重定向 5 ?????#if(‘useCat‘ == ‘useCat‘) 6 ?????if(0 && ‘useCat‘ == ‘useCat‘) 7 ?????{ 8 ?????????`cat a.log>>b.log`; 9 ?????}10 11 ?????#02. 使用flie_put_contents ,一行一行读取并追加写入12 ?????if(‘useFilePutContents‘ == ‘useFilePutContents‘)13 ?????{/*{{{*/14 ?????????$lineNum = `cat a.log|wc -l`;15 ?????????for($i=1; $i<= $lineNum; $i++)16 ?????????{17 ?????????????$content = `sed -n ‘$i p‘ a.log`;18 ?????????????//文件追加19 ?????????????file_put_contents(‘b.log‘, $content, FILE_APPEND);20 ?????????}21 22 ?????}/*}}}*/

  【其他解决方案】:http://www.jb51.net/article/40847.htm

【实战代码】PHP实现读取一个1G的文件大小

原文地址:http://www.cnblogs.com/aiweixiao/p/7535351.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved