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 相关文章推荐
phpMyAdmin 链接表的附加功能尚未激活的问题
Aug 01 PHP
php fsockopen解决办法 php实现多线程
Jan 20 PHP
php 创建以UNIX时间戳命名的文件夹(示例代码)
Mar 08 PHP
php数组合并的二种方法
Mar 21 PHP
php实现mysql封装类示例
May 07 PHP
PHPAnalysis中文分词类详解
Jun 13 PHP
Yii框架在页面输出执行sql语句以方便调试的实现方法
Dec 24 PHP
PHP获取文件相对路径的方法
Feb 26 PHP
CI框架文件上传类及图像处理类用法分析
May 18 PHP
PHP合并数组的2种方法小结
Nov 24 PHP
ThinkPHP框架实现的邮箱激活功能示例
Jun 15 PHP
PHP中用Trait封装单例模式的实现
Dec 18 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实现查询百度google收录情况(示例代码)
2013/08/02 PHP
单点登录 Ucenter示例分析
2013/10/29 PHP
完善CodeIgniter在IDE中代码提示功能的方法
2014/07/19 PHP
ThinkPHP开发框架函数详解:C方法
2015/08/14 PHP
PHP模板引擎Smarty内建函数详解
2016/04/11 PHP
PHP 搜索查询功能实现
2016/11/29 PHP
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
[原创]PHP实现SQL语句格式化功能的方法
2017/07/28 PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
2019/09/30 PHP
UI Events 用户界面事件
2012/06/27 Javascript
JavaScript控制Session操作方法
2013/01/17 Javascript
JSONP获取Twitter和Facebook文章数的具体步骤
2014/02/24 Javascript
jquery选择器使用详解
2014/04/08 Javascript
jQuery通过扩展实现抖动效果的方法
2015/03/11 Javascript
JavaScript中的普通函数与构造函数比较
2015/04/07 Javascript
正则表达式替换html元素属性的方法
2016/11/26 Javascript
JavaScript省市级联下拉菜单实例
2017/02/14 Javascript
详解AngularJS1.6版本中ui-router路由中/#!/的解决方法
2017/05/22 Javascript
vue2.0 keep-alive最佳实践
2017/07/06 Javascript
解决axios发送post请求返回400状态码的问题
2018/08/11 Javascript
TypeScript基础入门教程之三重斜线指令详解
2018/10/22 Javascript
通过说明与示例了解js五种设计模式
2019/06/17 Javascript
vue 动态设置img的src地址无效,npm run build 后找不到文件的解决
2020/07/26 Javascript
python实现八大排序算法(1)
2017/09/14 Python
python 处理dataframe中的时间字段方法
2018/04/10 Python
如何通过雪花算法用Python实现一个简单的发号器
2019/07/03 Python
matplotlib绘制多个子图(subplot)的方法
2019/12/03 Python
指针和引用有什么区别
2013/01/13 面试题
会计求职信
2014/05/29 职场文书
数控专业毕业生求职信
2014/06/12 职场文书
公司授权委托书格式样本
2014/10/01 职场文书
工作作风建设心得体会
2014/10/22 职场文书
自愿离婚协议书2015
2015/01/26 职场文书
司机岗位职责
2015/02/04 职场文书
毕业论文致谢信
2015/05/14 职场文书
解决numpy和torch数据类型转化的问题
2021/05/23 Python