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
优化使用mysql存储session的php代码
Jan 10 PHP
开源SNS系统-ThinkSNS
May 18 PHP
php遍历目录输出目录及其下的所有文件示例
Jan 27 PHP
smarty简单入门实例
Nov 28 PHP
php curl请求信息和返回信息设置代码实例
Apr 27 PHP
CodeIgniter使用smtp服务发送html邮件的方法
Jun 10 PHP
JavaScript与HTML结合的基本使用方法整理
Oct 12 PHP
PHP微信开发用Cache 解决数据缓存
Jul 11 PHP
Laravel 连接(Join)示例
Oct 16 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
Mar 23 PHP
PHP连接MySQL数据库三种实现方法
Dec 10 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中的登陆login
2007/01/18 PHP
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
2012/06/17 PHP
可以保证单词完整性的PHP英文字符串截取代码分享
2014/07/15 PHP
php微信开发之批量生成带参数的二维码
2016/06/26 PHP
PHP 输出缓冲控制(Output Control)详解
2016/08/25 PHP
Thinkphp5+Redis实现商品秒杀代码实例讲解
2020/12/29 PHP
jquery复选框checkbox实现删除前判断
2014/04/20 Javascript
DOM事件阶段以及事件捕获与事件冒泡先后执行顺序(图文详解)
2015/08/18 Javascript
微信小程序  自定义创建详细介绍
2016/10/27 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
JavaScript中document.referrer的用法详解
2017/07/04 Javascript
详解webpack多页面配置记录
2018/01/22 Javascript
vuex 项目结构目录及一些简单配置介绍
2018/04/08 Javascript
js数组去重的N种方法(小结)
2018/06/07 Javascript
nodejs中用npm初始化来创建package.json的实例讲解
2018/10/10 NodeJs
Node.js console控制台简单用法分析
2019/01/04 Javascript
JS实现指定区域的全屏显示功能示例
2019/04/25 Javascript
原生js实现轮播图特效
2020/05/04 Javascript
解决vue中的无限循环问题
2020/07/27 Javascript
python pytest进阶之conftest.py详解
2019/06/27 Python
python实现简单聊天室功能 可以私聊
2019/07/12 Python
详解python中的数据类型和控制流
2019/08/08 Python
Python While循环语句实例演示及原理解析
2020/01/03 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
在keras中model.fit_generator()和model.fit()的区别说明
2020/06/17 Python
安装并免费使用Pycharm专业版(学生/教师)
2020/09/24 Python
HTML5 Canvas实现图片缩放、翻转、颜色渐变的代码示例
2016/02/28 HTML / CSS
html svg生成环形进度条的实现方法
2019/09/23 HTML / CSS
凯特·丝蓓英国官网:Kate Spade英国
2016/11/07 全球购物
Betsey Johnson官网:妖娆可爱的连衣裙及鞋子、手袋和配件
2016/12/30 全球购物
简单说下OSPF的操作过程
2014/08/13 面试题
《雨霖铃》听课反思
2014/02/13 职场文书
宾馆总经理岗位职责
2014/02/14 职场文书
迎新晚会策划方案
2014/06/13 职场文书
单位消防安全责任书
2014/07/23 职场文书
2015年教师节活动总结
2015/03/20 职场文书