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中执行系统外部命令
Oct 09 PHP
php Smarty模板生成html文档的方法
Apr 12 PHP
PHP系列学习之日期函数使用介绍
Aug 18 PHP
用php守护另一个php进程的例子
Feb 13 PHP
php实现微信发红包
Dec 05 PHP
PHP结合Jquery和ajax实现瀑布流特效
Jan 07 PHP
用PHP写的一个冒泡排序法的函数简单实例
May 26 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
Jun 16 PHP
PHP DB 数据库连接类定义与用法示例
Mar 11 PHP
php实现快速对二维数组某一列进行组装的方法小结
Dec 04 PHP
PHP接口类(interface)的定义、特点和应用示例
May 18 PHP
open_basedir restriction in effect. 原因与解决方法
Mar 14 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中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节
2010/07/09 PHP
PHP IE中下载附件问题解决方法
2014/01/07 PHP
PHP单链表的实现代码
2016/07/05 PHP
JavaScript对象之间的转换 jQuery对象和原声DOM
2011/03/07 Javascript
通过url查找a元素并点击
2014/04/09 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
2014/04/16 Javascript
js实现点击图片将图片地址复制到粘贴板的方法
2015/02/16 Javascript
网页从弹窗页面单选框传值至父页面代码分享
2015/09/29 Javascript
javascript基础练习之翻转字符串与回文
2017/02/20 Javascript
Vue动态实现评分效果
2017/05/24 Javascript
详解.vue文件中监听input输入事件(oninput)
2017/09/19 Javascript
35个最好用的Vue开源库(史上最全)
2019/01/03 Javascript
vue 取出v-for循环中的index值实例
2019/11/09 Javascript
jquery实现直播视频弹幕效果
2020/02/25 jQuery
解决在Vue中使用axios POST请求变成OPTIONS的问题
2020/08/14 Javascript
python避免死锁方法实例分析
2015/06/04 Python
Python实现爬取逐浪小说的方法
2015/07/07 Python
在Django中创建第一个静态视图
2015/07/15 Python
利用Python抓取行政区划码的方法
2016/11/28 Python
python基础练习之几个简单的游戏
2017/11/10 Python
Python中 传递值 和 传递引用 的区别解析
2018/02/22 Python
Python随机函数random()使用方法小结
2018/04/29 Python
python实现最长公共子序列
2018/05/22 Python
PyTorch学习笔记之回归实战
2018/05/28 Python
python3实现SMTP发送邮件详细教程
2018/06/19 Python
使用Python实现从各个子文件夹中复制指定文件的方法
2018/10/25 Python
在Python中COM口的调用方法
2019/07/03 Python
简单了解python gevent 协程使用及作用
2019/07/22 Python
Python 实现打印单词的菱形字符图案
2020/04/12 Python
Matplotlib 折线图plot()所有用法详解
2020/07/28 Python
Levi’s美国官网:美国著名的牛仔裤品牌
2016/08/19 全球购物
阿联酋最好的手机、电子产品和家用电器网上商店:Eros Digital Home
2020/08/09 全球购物
财务与信息服务专业推荐信
2013/11/28 职场文书
自考生自我评价分享
2014/01/18 职场文书
音乐学专业求职信
2014/07/22 职场文书
人身损害赔偿协议书
2016/03/22 职场文书