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与SQL注入攻击[三]
Apr 17 PHP
php 判断数组是几维数组
Mar 20 PHP
php使用pdo连接mssql server数据库实例
Dec 25 PHP
PHP中error_log()函数的使用方法
Jan 20 PHP
php设置页面超时时间解决方法
Sep 22 PHP
smarty中改进truncate使其支持中文的方法
May 30 PHP
thinkPHP自动验证、自动添加及表单错误问题分析
Oct 17 PHP
利用switch语句进行多选一判断的实例代码
Nov 14 PHP
ZendFramework框架实现连接两个或多个数据库的方法
Dec 08 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
Nov 06 PHP
php 获取xml接口数据的处理方法
May 31 PHP
PHP使用redis位图bitMap 实现签到功能
Oct 08 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
如何将一个表单同时提交到两个地方处理
2006/10/09 PHP
php开发环境配置记录
2011/01/14 PHP
php广告加载类用法实例
2014/09/23 PHP
从wamp到xampp的升级之路
2015/04/08 PHP
PHP加密3DES报错 Call to undefined function: mcrypt_module_open() 如何解决
2016/04/17 PHP
JS 密码强度验证(兼容IE,火狐,谷歌)
2010/03/15 Javascript
IFrame跨域高度自适应实现代码
2012/08/16 Javascript
给Flash加一个超链接(推荐使用透明层)兼容主流浏览器
2013/06/09 Javascript
js键盘事件的keyCode
2014/07/29 Javascript
清除js缓存的多种方法总结
2016/12/09 Javascript
基于vue实现多引擎搜索及关键字提示
2017/03/16 Javascript
Jquery EasyUI $.Parser
2017/06/02 jQuery
Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
2017/08/18 Javascript
微信小程序实现选项卡功能
2020/06/19 Javascript
webpack 模块热替换原理
2018/04/09 Javascript
clipboard.js在移动端复制失败的解决方法
2018/06/13 Javascript
详解React之父子组件传递和其它一些要点
2018/06/25 Javascript
vue.js实现数据库的JSON数据输出渲染到html页面功能示例
2019/08/03 Javascript
js实现聊天对话框
2020/02/08 Javascript
微信小程序个人中心的列表控件实现代码
2020/04/26 Javascript
JavaScript代码简化技巧实例解析
2020/09/09 Javascript
Python基于sklearn库的分类算法简单应用示例
2018/07/09 Python
转换科学计数法的数值字符串为decimal类型的方法
2018/07/16 Python
pyspark操作MongoDB的方法步骤
2019/01/04 Python
python多线程并发让两个LED同时亮的方法
2019/02/18 Python
python 字典的打印实现
2019/09/26 Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
2020/05/20 Python
Python新手如何理解循环加载模块
2020/05/29 Python
html5构建触屏网站之网站尺寸探讨
2013/01/07 HTML / CSS
国际鲜花速递专家:Floraqueen
2016/11/24 全球购物
ASOS亚洲:ASOS Asia
2018/03/04 全球购物
Reebok官方旗舰店:美国知名健身品牌锐步
2019/01/07 全球购物
阿里巴巴Oracle DBA笔试题答案-备份恢复类
2013/11/20 面试题
法学毕业生自荐信
2013/11/13 职场文书
优秀志愿者事迹材料
2014/02/03 职场文书
结对共建协议书
2014/08/20 职场文书