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 相关文章推荐
编译php 5.2.14+fpm+memcached(具体操作详解)
Jun 18 PHP
如何让CI框架支持service层
Oct 29 PHP
PHP+MySQL插入操作实例
Jan 21 PHP
PHP 双链表(SplDoublyLinkedList)简介和使用实例
May 12 PHP
深入浅析Yii admin的权限控制
Aug 31 PHP
利用PHP抓取百度阅读的方法示例
Dec 18 PHP
CakePHP框架Model关联对象用法分析
Aug 04 PHP
PHP中检查isset()和!empty()函数的必要性
Feb 13 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
Apr 02 PHP
TP5框架安全机制实例分析
Apr 05 PHP
Thinkphp 框架扩展之驱动扩展实例分析
Apr 27 PHP
如何通过PHP实现Des加密算法代码实例
May 09 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
PHP Ajax中文乱码问题解决方法
2009/02/27 PHP
基于Snoopy的PHP近似完美获取网站编码的代码
2011/10/23 PHP
php将数组转换成csv格式文件输出的方法
2015/03/14 PHP
利用php-cli和任务计划实现刷新token功能的方法
2017/05/03 PHP
javascript中拼接HTML字符串的最快、最好的方法
2014/06/07 Javascript
js读取csv文件并使用json显示出来
2015/01/09 Javascript
JavaScript函数节流概念与用法实例详解
2016/06/20 Javascript
json定义及jquery操作json的方法
2016/09/29 Javascript
nodejs连接mongodb数据库实现增删改查
2016/12/01 NodeJs
node.js express中app.param的用法详解
2017/07/16 Javascript
解决vue 界面在苹果手机上滑动点击事件等卡顿问题
2018/11/27 Javascript
微信小程序实现点击图片旋转180度并且弹出下拉列表
2018/11/27 Javascript
javascript简单实现深浅拷贝过程详解
2019/10/08 Javascript
javascript canvas实现简易时钟例子
2020/09/05 Javascript
Python socket C/S结构的聊天室应用实现
2014/11/30 Python
python在windows命令行下输出彩色文字的方法
2015/03/19 Python
python实现linux下使用xcopy的方法
2015/06/28 Python
python 回调函数和回调方法的实现分析
2016/03/23 Python
Python基于列表list实现的CRUD操作功能示例
2018/01/05 Python
Python实现的KMeans聚类算法实例分析
2018/12/29 Python
在PyCharm导航区中打开多个Project的关闭方法
2019/01/17 Python
Pandas中Series和DataFrame的索引实现
2019/06/27 Python
python线程的几种创建方式详解
2019/08/29 Python
Python request post上传文件常见要点
2020/11/20 Python
匡威意大利官方商店 :Converse意大利
2018/11/27 全球购物
构造方法和其他方法的区别?怎么调用父类的构造方法
2013/09/22 面试题
创业资金计划书
2014/02/06 职场文书
《小山羊和小灰兔》教学反思
2014/02/19 职场文书
员工合理化建议书
2014/05/19 职场文书
合作协议书格式
2014/08/19 职场文书
门市房租房协议书
2014/12/04 职场文书
污染环境建议书
2015/09/14 职场文书
2019最新版试用期劳动合同模板!
2019/07/04 职场文书
Python机器学习之基于Pytorch实现猫狗分类
2021/06/08 Python
详解Java实践之抽象工厂模式
2021/06/18 Java/Android
python中Pyqt5使用Qlabel标签播放视频
2022/04/22 Python