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调用Oracle存储过程
Oct 09 PHP
php 全文搜索和替换的实现代码
Jul 29 PHP
几道坑人的PHP面试题 试试看看你会不会也中招
Aug 19 PHP
PHP中怎样防止SQL注入分析
Oct 23 PHP
PHP将HTML转换成文本的实现代码
Jan 21 PHP
php+ajax无刷新分页实例详解
Dec 07 PHP
thinkPHP引入类的方法详解
Dec 08 PHP
php获取POST数据的三种方法实例详解
Dec 20 PHP
Yii 2.0实现联表查询加搜索分页的方法示例
Aug 02 PHP
php单元测试phpunit入门实例教程
Nov 17 PHP
PHP实现的最大正向匹配算法示例
Dec 19 PHP
php7 图形用户界面GUI 开发示例
Feb 22 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
对javascript和select部件的结合运用
2006/10/09 PHP
php计算title标题相似比的方法
2015/07/29 PHP
详解PHP 7.4 中数组延展操作符语法知识点
2019/07/19 PHP
利用jq让你的div居中的好方法分享
2013/11/21 Javascript
详解AngularJS中的作用域
2015/06/17 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
JS运动相关知识点小结(附弹性运动示例)
2016/01/08 Javascript
jquery插件之文字间歇自动向上滚动效果代码
2016/02/25 Javascript
Vue数据驱动模拟实现4
2017/01/12 Javascript
BootStrap select2 动态改变值的方法
2017/02/10 Javascript
ES6中的箭头函数实例详解
2017/04/06 Javascript
详解vue嵌套路由-params传递参数
2017/05/23 Javascript
基于twbsPagination.js分页插件使用心得(分享)
2017/10/21 Javascript
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
2018/01/25 jQuery
Vue在页面右上角实现可悬浮/隐藏的系统菜单
2018/05/04 Javascript
Nodejs 发布自己的npm包并制作成命令行工具的实例讲解
2018/05/15 NodeJs
原生JS与JQ获取元素的区别详解
2020/02/13 Javascript
[28:57]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/16 DOTA
python模块restful使用方法实例
2013/12/10 Python
python检测服务器是否正常
2014/02/16 Python
利用QT写一个极简单的图形化Python闹钟程序
2015/04/07 Python
python爬虫爬取快手视频多线程下载功能
2018/02/28 Python
深入浅析python 协程与go协程的区别
2019/05/09 Python
python实现ip代理池功能示例
2019/07/05 Python
浅谈Python中函数的定义及其调用方法
2019/07/19 Python
在keras中获取某一层上的feature map实例
2020/01/24 Python
Python3监控疫情的完整代码
2020/02/20 Python
Python 中 sorted 如何自定义比较逻辑
2021/02/02 Python
HTML5 通信API 跨域门槛将不再高、数据推送也不再是梦
2013/04/25 HTML / CSS
兰蔻加拿大官方网站:Lancome加拿大
2016/08/05 全球购物
Levi’s西班牙官方网站:李维斯,著名的牛仔裤品牌
2020/08/20 全球购物
工程师求职简历的自我评价分享
2013/10/10 职场文书
行政助理求职自荐信
2013/10/26 职场文书
自荐信要包含哪些内容
2013/11/06 职场文书
解放思想大讨论活动总结
2015/05/09 职场文书
表扬稿表扬信的格式及范文
2019/06/24 职场文书