PHP读取CSV大文件导入数据库的实例


Posted in PHP onJuly 24, 2017

PHP如何对CSV大文件进行读取并导入数据库?

对于数百万条数据量的CSV文件,文件大小可能达到数百M,如果简单读取的话很可能出现超时或者卡死的现象。

为了成功将CSV文件里的数据导入数据库,分批处理是非常必要的。

下面这个函数是读取CSV文件中指定的某几行数据:

/**
 * csv_get_lines 读取CSV文件中的某几行数据
 * @param $csvfile csv文件路径
 * @param $lines 读取行数
 * @param $offset 起始行数
 * @return array
 * */
function csv_get_lines($csvfile, $lines, $offset = 0) {
 if(!$fp = fopen($csvfile, 'r')) {
 	return false;
 }
 $i = $j = 0;
	while (false !== ($line = fgets($fp))) {
		if($i++ < $offset) {
			continue; 
		}
		break;
	}
	$data = array();
	while(($j++ < $lines) && !feof($fp)) {
		$data[] = fgetcsv($fp);
	}
	fclose($fp);
 return $data;
}

调用方法:

$data = csv_get_lines('path/bigfile.csv', 10, 2000000);

print_r($data);

函数主要采用行定位的思路,通过跳过起始行数来实现文件指针定位。

至于数据如何入库本文不再详细讲述。

上述函数对500M以内的文件进行过测试,运行通畅,对于更大的文件未做测试,请斟酌使用或加以改进。

这篇PHP读取CSV大文件导入数据库的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
自动跳转中英文页面
Oct 09 PHP
php mysql数据库操作类
Jun 04 PHP
php使用Smarty的相关注意事项及访问变量的几种方式
Dec 08 PHP
解析smarty模板中类似for的功能实现
Jun 18 PHP
PHP对接微信公众平台消息接口开发流程教程
Mar 25 PHP
WordPress中设置Post Type自定义文章类型的实例教程
May 10 PHP
php parse_str() 函数的定义和用法
May 23 PHP
PHP页面跳转实现延时跳转的方法
Dec 10 PHP
php实现水印文字和缩略图的方法示例
Dec 29 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
Feb 11 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
Oct 11 PHP
PHP全局使用Laravel辅助函数dd
Dec 26 PHP
Yii2.0多文件上传实例说明
Jul 24 #PHP
thinkphp分页集成实例
Jul 24 #PHP
PHP 实现页面静态化的几种方法
Jul 23 #PHP
PHP魔术方法之__call与__callStatic使用方法
Jul 23 #PHP
php魔法函数与魔法常量使用介绍
Jul 23 #PHP
php curl上传、下载、https登陆实现代码
Jul 23 #PHP
php类自动装载、链式操作、魔术方法实现代码
Jul 23 #PHP
You might like
《忧国的莫里亚蒂》先导宣传图与STAFF公开
2020/03/04 日漫
PHP数组实例总结与说明
2011/08/23 PHP
php验证码实现代码(3种)
2015/09/07 PHP
WordPress中用于获取文章信息以及分类链接的函数用法
2015/12/18 PHP
Yii框架的redis命令使用方法简单示例
2019/10/15 PHP
比Jquery的document.ready更快的方法
2010/04/28 Javascript
jQuery遍历对象、数组、集合实例
2014/11/08 Javascript
JavaScript中的console.group()函数详细介绍
2014/12/29 Javascript
SuperSlide标签切换、焦点图多种组合插件
2015/03/14 Javascript
深入学习jQuery Validate表单验证(二)
2016/01/18 Javascript
【经验总结】编写JavaScript代码时应遵循的14条规律
2016/06/20 Javascript
基于jQuery实现弹出可关闭遮罩提示框实例代码
2016/07/18 Javascript
微信小程序 教程之模板
2016/10/18 Javascript
vue2.0获取自定义属性的值
2017/03/28 Javascript
javascript数组去重常用方法实例分析
2017/04/11 Javascript
JavaScript实现鼠标滚轮控制页面图片切换功能示例
2017/10/14 Javascript
vue实现图片加载完成前的loading组件方法
2018/02/05 Javascript
浅谈Vue内置component组件的应用场景
2018/03/27 Javascript
jQuery实现的上传图片本地预览效果简单示例
2018/03/29 jQuery
js实现九宫格布局效果
2020/05/28 Javascript
python list转dict示例分享
2014/01/28 Python
跟老齐学Python之关于类的初步认识
2014/10/11 Python
Python卸载模块的方法汇总
2016/06/07 Python
python批量设置多个Excel文件页眉页脚的脚本
2018/03/14 Python
一百多行python代码实现抢票助手
2018/09/25 Python
python实现QQ邮箱发送邮件
2020/03/06 Python
python属于软件吗
2020/06/18 Python
Python之qq自动发消息的示例代码
2021/02/18 Python
基于canvas的骨骼动画的示例代码
2018/06/12 HTML / CSS
StubHub巴西:购买和出售您的门票
2016/07/22 全球购物
璀璨的珍珠、密钉和个性化珠宝:Lily & Roo
2021/01/21 全球购物
机关会计岗位职责
2014/04/08 职场文书
法律专业自荐信
2014/06/03 职场文书
乡镇镇长个人整改措施
2014/10/01 职场文书
可可西里观后感
2015/06/08 职场文书
PostgreSQL自动更新时间戳实例代码
2021/11/27 PostgreSQL