php 使用file_get_contents读取大文件的方法


Posted in PHP onNovember 13, 2014

当我们遇到文本文件体积很大时,比如超过几十M甚至几百M几G的大文件,用记事本或者其它编辑器打开往往不能成功,因为他们都需要把文件内容全部放到内存里面,这时就会发生内存溢出而打开错误,遇到这种情况我们可以使用PHP的文件读取函数file_get_contents()进行分段读取。

函数说明
string file_get_contents ( string $filename [, bool $use_include_path [, resource $context [, int $offset [, int $maxlen ]]]] )
和 file() 一样,只除了 file_get_contents() 把文件读入一个字符串。将在参数 offset 所指定的位置开始读取长度为 maxlen 的内容。如果失败,file_get_contents() 将返回 FALSE。

file_get_contents() 函数是用来将文件的内容读入到一个字符串中的首选方法。如果操作系统支持还会使用内存映射技术来增强性能。

应用:

$str = $content=file_get_contents("2.sql",FALSE,NULL,1024*1024,1024);

echo $str;

如果针对较小文件只是希望分段读取并以此读完可以使用fread()函数

$fp=fopen('2.sql','r');

while (!feof($fp)){

$str.=fread($fp, filesize ($filename)/10);//每次读出文件10分之1

//进行处理

}
echo $str;

以上就是如何使用file_get_contents函数读取大文件的方法,超级简单吧,需要的小伙伴直接搬走!

PHP 相关文章推荐
玩转图像函数库―常见图形操作
Sep 03 PHP
提问的智慧(2)
Oct 09 PHP
一个php作的文本留言本的例子(三)
Oct 09 PHP
ThinkPHP使用心得分享-上传类UploadFile的使用
May 15 PHP
php判断数组元素中是否存在某个字符串的方法
Jun 14 PHP
彻底删除thinkphp3.1案例blog标签的方法
Dec 05 PHP
php中stdClass的用法分析
Feb 27 PHP
Yii2.0多文件上传实例说明
Jul 24 PHP
php数据序列化测试实例详解
Aug 12 PHP
关于Curl在Swoole协程中的解决方案详析
Sep 12 PHP
laravel 框架结合关联查询 when()用法分析
Nov 22 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
Feb 21 PHP
php合并数组中相同元素的方法
Nov 13 #PHP
php魔术变量用法实例详解
Nov 13 #PHP
html静态页面调用php文件的方法
Nov 13 #PHP
PHP动态页生成静态页的3种常用方法
Nov 13 #PHP
PHP使用json_encode函数时不转义中文的解决方法
Nov 12 #PHP
php5.3提示Function ereg() is deprecated Error问题解决方法
Nov 12 #PHP
PHP中file_exists()判断中文文件名无效的解决方法
Nov 12 #PHP
You might like
关于mysql 字段的那个点为是定界符
2007/01/15 PHP
PHPExcel读取Excel文件的实现代码
2011/12/06 PHP
php生成固定长度纯数字编码的方法
2015/07/09 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
2016/05/11 PHP
PHP正则删除HTML代码中宽高样式的方法
2017/06/12 PHP
转自Jquery官方 jQuery1.1.3发布,速度提升800%,体积保持20K
2007/08/19 Javascript
js实现的常用的左侧导航效果
2013/10/17 Javascript
js事件监听机制(事件捕获)总结
2014/08/08 Javascript
js获取json元素数量的方法
2015/01/27 Javascript
JS实现的4种数字千位符格式化方法分享
2015/03/02 Javascript
JavaScript的RequireJS库入门指南
2015/07/01 Javascript
AngularJs解决跨域问题案例详解(简单方法)
2016/05/19 Javascript
如何使用angularJs
2017/05/08 Javascript
JavaScript事件循环及宏任务微任务原理解析
2020/09/02 Javascript
[47:42]Fnatic vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
使用Python的Twisted框架实现一个简单的服务器
2015/04/16 Python
介绍Python中内置的itertools模块
2015/04/29 Python
Pthon批量处理将pdb文件生成dssp文件
2015/06/21 Python
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
2019/03/18 Python
使用APScheduler3.0.1 实现定时任务的方法
2019/07/22 Python
Python 批量刷博客园访问量脚本过程解析
2019/08/30 Python
keras做CNN的训练误差loss的下降操作
2020/06/22 Python
德国低价购买灯具和家具网站:Style-home.de
2016/11/25 全球购物
喜诗官方在线巧克力店:See’s Candies
2017/01/01 全球购物
美国面料纺织品商城:Fabric.com
2017/06/28 全球购物
历史学专业个人的自我评价
2013/10/13 职场文书
办公室主任先进事迹
2014/01/18 职场文书
银行员工犯错检讨书
2014/09/16 职场文书
2014年药房工作总结
2014/11/22 职场文书
2015年社区民政工作总结
2015/04/21 职场文书
2015年个人招商工作总结
2015/04/25 职场文书
雨中的树观后感
2015/06/03 职场文书
重温入党誓词主持词
2015/06/29 职场文书
Python机器学习算法之决策树算法的实现与优缺点
2021/05/13 Python
python flask开发的简单基金查询工具
2021/06/02 Python
微信小程序 根据不同用户切换不同TabBar
2022/04/21 Javascript