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 反射机制实现动态代理的代码
Oct 22 PHP
用PHP实现的四则运算表达式计算实现代码
Aug 02 PHP
我的php学习笔记(毕业设计)
Feb 21 PHP
一个PHP并发访问实例代码
Sep 06 PHP
PHP获取php,mysql,apche的版本信息示例代码
Jan 16 PHP
php中unserialize返回false的解决方法
Sep 22 PHP
PHP判断一个字符串是否是回文字符串的方法
Mar 23 PHP
PHP+MySQL实现的简单投票系统实例
Feb 24 PHP
php模拟post上传图片实现代码
Jun 24 PHP
php实现与python进行socket通信的方法示例
Aug 30 PHP
PHP+MySql实现一个简单的留言板
Jul 19 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
PHP静态类
2006/11/25 PHP
一个基于phpQuery的php通用采集类分享
2014/04/09 PHP
Swoole-1.7.22 版本已发布,修复PHP7相关问题
2015/12/31 PHP
Yii2增加验证码步骤详解
2016/04/25 PHP
php判断用户是否关注微信公众号
2016/07/22 PHP
一个简单的php MVC留言本实例代码(必看篇)
2016/09/22 PHP
PHP利用超级全局变量$_GET来接收表单数据的实例
2016/11/05 PHP
php中static 静态变量和普通变量的区别
2016/12/01 PHP
php微信开发之谷歌测距
2018/06/14 PHP
javascript 四则运算精度修正函数代码
2010/05/31 Javascript
使用jQuery清空file文件域的解决方案
2013/04/12 Javascript
asp.net刷新本页面的六种方法总结
2014/01/07 Javascript
JS实现的最简Table选项卡效果
2015/10/14 Javascript
XMLHttpRequest Level 2 使用指南
2016/08/26 Javascript
基于jQuery的select下拉框选择触发事件实例分析
2016/11/18 Javascript
利用JS屏蔽页面中的Enter按键提交表单的方法
2016/11/25 Javascript
JS实现复制内容到剪贴板功能
2017/02/05 Javascript
详解nodejs中exports和module.exports的区别
2017/02/17 NodeJs
vue基于Vue2.0和高德地图的地图组件实例
2017/04/28 Javascript
vue.js移动端tab组件的封装实践实例
2017/06/30 Javascript
详解在React.js中使用PureComponent的重要性和使用方式
2018/07/10 Javascript
elementUI同一页面展示多个Dialog的实现
2020/11/19 Javascript
实例讲解Python中的私有属性
2014/08/21 Python
python制作最美应用的爬虫
2015/10/28 Python
详解使用pymysql在python中对mysql的增删改查操作(综合)
2017/01/18 Python
Python实现自定义顺序、排列写入数据到Excel的方法
2018/04/23 Python
Python中的相关分析correlation analysis的实现
2019/08/29 Python
Python龙贝格法求积分实例
2020/02/29 Python
暑期社会实践感言
2014/02/25 职场文书
最美孝心少年事迹材料
2014/08/15 职场文书
学生检讨书怎么写?
2014/10/10 职场文书
篮球友谊赛通讯稿
2014/10/10 职场文书
老公给老婆的检讨书(精华篇)
2014/10/18 职场文书
先进教育工作者事迹材料
2014/12/23 职场文书
Python图片检索之以图搜图
2021/05/31 Python
SpringBoot整合阿里云视频点播的过程详解
2021/12/06 Java/Android