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代码包装修正版
Mar 15 PHP
用php来改写404错误页让你的页面更友好
Jan 24 PHP
解析Extjs与php数据交互(增删查改)
Jun 25 PHP
关于PHP内存溢出问题的解决方法
Jun 25 PHP
浅谈php函数serialize()与unserialize()的使用方法
Aug 19 PHP
php生成PDF格式文件并且加密
Jun 22 PHP
[原创]ThinkPHP让../Public在模板不解析(直接输出)的方法
Oct 09 PHP
PHP执行linux命令常用函数汇总
Feb 02 PHP
实例讲解php数据访问
May 09 PHP
PHP登录验证码的实现与使用方法
Jul 07 PHP
浅谈php://filter的妙用
Mar 05 PHP
PhpStorm连接服务器并实现自动上传功能
Dec 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 将bmp图片转为jpg等其他任意格式的图片
2009/06/21 PHP
基于PHP常用字符串的总结(待续)
2013/06/07 PHP
php实现多城市切换特效
2015/08/09 PHP
PHP laravel中的多对多关系实例详解
2017/06/07 PHP
PHP实现的自定义图像居中裁剪函数示例【测试可用】
2017/08/11 PHP
JavaScript中使用正则匹配多条,且获取每条中的分组数据
2010/11/30 Javascript
jQuery 瀑布流 浮动布局(一)(延迟AJAX加载图片)
2012/05/23 Javascript
jquery入门—访问DOM对象方法
2013/01/07 Javascript
浅析Javascript使用include/require
2013/11/13 Javascript
判断JS对象是否拥有某种属性的两种方式
2013/12/02 Javascript
jQuery表单域属性过滤器用法分析
2015/02/10 Javascript
javascript实现支持移动设备画廊
2015/08/24 Javascript
利用jquery制作滚动到指定位置触发动画
2016/03/26 Javascript
纯js实现手风琴效果代码
2020/04/17 Javascript
JavaScript定时器实现的原理分析
2016/12/06 Javascript
获取url中用&隔开的参数实例(分享)
2017/05/28 Javascript
Angular中自定义Debounce Click指令防止重复点击
2017/07/26 Javascript
js实现随机点名小功能
2017/08/17 Javascript
实现图片首尾平滑轮播(JS原生方法—节流)
2017/10/17 Javascript
详解Angularjs 自定义指令中的数据绑定
2018/07/19 Javascript
原生JS使用Canvas实现拖拽式绘图功能
2019/06/05 Javascript
ECharts地图绘制和钻取简易接口详解
2019/07/12 Javascript
如何在Vue中抽离接口配置文件
2019/10/31 Javascript
JavaScript修改注册表实例代码
2020/01/05 Javascript
Vue实现附件上传功能
2020/05/28 Javascript
vue-video-player 断点续播的实现
2021/02/01 Vue.js
[57:59]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第一场 11.05
2020/11/05 DOTA
python实现ip查询示例
2014/03/26 Python
Python编程实现二分法和牛顿迭代法求平方根代码
2017/12/04 Python
Python抓取聚划算商品分析页面获取商品信息并以XML格式保存到本地
2018/02/23 Python
说说在weblogic中开发消息Bean时的persistent与non-persisten的差别
2013/04/07 面试题
青年文明号复核材料
2014/02/11 职场文书
2014最新开业庆典策划方案(5篇)
2014/09/15 职场文书
企业计划生育责任书
2015/05/09 职场文书
因身体原因离职的辞职信范文
2015/05/12 职场文书
幸福来敲门观后感
2015/06/04 职场文书