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 相关文章推荐
mysql 中InnoDB和MyISAM的区别分析小结
Apr 15 PHP
PHP+MySQL 制作简单的留言本
Nov 02 PHP
fleaphp crud操作之findByField函数的使用方法
Apr 23 PHP
php文件怎么打开 如何执行php文件
Dec 21 PHP
php empty()与isset()区别的详细介绍
Jun 17 PHP
浅析PHP Socket技术
Aug 02 PHP
ThinkPHP实例化模型的四种方法概述
Aug 22 PHP
php的ddos攻击解决方法
Jan 08 PHP
php去掉文件前几行的方法
Jul 29 PHP
PHP浮点数的一个常见问题
Mar 10 PHP
PHP中__autoload和Smarty冲突的简单解决方法
Apr 08 PHP
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
Oct 13 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
phalcon model在插入或更新时会自动验证非空字段的解决办法
2016/12/29 PHP
laravel中的一些简单实用功能
2018/11/03 PHP
PHP PDOStatement::bindColumn讲解
2019/01/30 PHP
PHP htmlspecialchars_decode()函数用法讲解
2019/03/01 PHP
JavaScript 节点操作 以及DOMDocument属性和方法
2007/12/06 Javascript
常用的javascript function代码
2008/05/23 Javascript
jquery URL参数判断,确定菜单样式
2010/05/31 Javascript
setTimeout()与setInterval()方法区别介绍
2013/12/24 Javascript
禁止页面刷新让F5快捷键及右键都无效
2014/01/22 Javascript
jquery.ajax的url中传递中文乱码问题的解决方法
2014/02/07 Javascript
前端轻量级MVC框架CanJS详解
2014/09/26 Javascript
jquery实现可拖拽弹出层特效
2015/01/04 Javascript
JavaScript中常见获取元素的方法汇总
2015/03/04 Javascript
js判断子窗体是否关闭的方法
2015/08/11 Javascript
javascript实现状态栏中文字动态显示的方法
2015/10/20 Javascript
关于vue.extend和vue.component的区别浅析
2017/08/16 Javascript
jQuery实现简单的计时器功能实例分析
2017/08/29 jQuery
图片加载完成再执行事件的实例
2017/11/16 Javascript
Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法)
2020/01/19 Javascript
pymongo实现控制mongodb中数字字段做加法的方法
2015/03/26 Python
在Django中创建URLconf相关的通用视图的方法
2015/07/20 Python
python实现下载指定网址所有图片的方法
2015/08/08 Python
Python正规则表达式学习指南
2016/08/02 Python
python保存二维数组到txt文件中的方法
2018/11/15 Python
Python3 集合set入门基础
2020/02/10 Python
pyqt5中动画的使用详解
2020/04/01 Python
Python可视化工具如何实现动态图表
2020/10/23 Python
python中常用的数据结构介绍
2021/01/12 Python
纯CSS改变webkit内核浏览器的滚动条样式
2014/04/17 HTML / CSS
Java面试中常遇到的问题,也是需要注意的几点
2013/08/30 面试题
学习党章思想汇报
2014/01/07 职场文书
《钱学森》听课反思
2014/03/01 职场文书
国家助学贷款承诺书
2015/04/30 职场文书
Mysql基础之常见函数
2021/04/22 MySQL
JavaScript如何利用Promise控制并发请求个数
2021/05/14 Javascript
Jupyter notebook 更改文件打开的默认路径操作
2021/05/21 Python