PHP项目中实现导入csv文件的代码是什么?
Admin 2022-10-13 群英技术资讯 285 次浏览
工作中常用到一些导入数据的功能,今天就给大家介绍一种方式,导入csv文件,此方式导入还是比较快的,但是也会存在一些问题。比如csv格式的表格制作麻烦,我的方法需要调整表格的编码为utf-8格式,并且导入过程中需要增加一列标示 。并且表名称不能为中文。都是影响成功与否的重要因素。对于导入数据我只做了简单的过滤处理。下面就给大家介绍一下吧。
代码如下:
//导入文件存放的具体位置。含文件路径需要创建好文件
$fname = “./saveFile/”.$_FILES[“myfile”][“name”];
//copy(要复制的文件,复制文件的目的地)
$do = copy($_FILES[“myfile”][“tmp_name”],$fname);
if($do){
//打开文件或者 URL r 以只读方式打开文件。
$handle=fopen(“$fname”,”r”);
//循环输出csv中读取出的数据
while ($data=_fgetcsv($handle,10000)){
//下面是查询商品是否存在存在将不插入进表
$ sql = ‘select id FROM ‘.$ecs->table(‘ssss’).” WHERE id =’$data[1]'”;
$res = $db->getOne($sql);
//如果不存在的都将插入到数据库中
if(!$res){
//过滤特殊字符
if($data[3]){
//单双引号、反斜线及NULL加上反斜线转义
$data[3]=addslashes($data[3]);
}
$sql = “INSERT INTO ” . $ecs->table(‘ssss’) .” (bl_num,id,c_id,g_name) VALUES (‘$data[0]’, ‘$data[1]’, ‘$data[2]’, ‘$data[3]’)” ;
$db->query($sql);
}
}
fclose($handle);
}
//上传csv函数做一些表格的处理程序不做介绍。我也没细研究(呵呵)
function _fgetcsv(&$handle, $ length = null, $d = ‘,’, $e = ‘”‘){
$d = preg_quote($d);
$e = preg_quote($e);
$_line = “”;
$ eof = false ;
while ($eof != true) {
$_line .= (empty ($length) ? fgets ($handle) : fgets($handle, $length));
$itemcnt = preg_match_all(‘/’ . $e . ‘/’, $_line, $dummy);
if ($itemcnt % 2 == 0)
$eof = true;
}
$_csv_line = preg_replace(‘/(?: |[ ])?$/’, $d, trim ($_line));
$_csv_pattern = ‘/(‘ . $e . ‘[^’ . $e . ‘]*(?:’ . $e . $e . ‘[^’ . $e . ‘]*)*’ . $e . ‘|[^’ . $d . ‘]*)’ . $d . ‘/’;
preg_match_all($_csv_pattern, $_csv_line, $_csv_matches);
$_csv_data = $_csv_matches[1];
for ($_csv_i = 0; $_csv_i < count($_csv_data); $_csv_i++) {
$_csv_data[$_csv_i] = preg_replace(‘/^’ . $e . ‘(.*)’ . $e . ‘$/s’, ‘$1’ , $_csv_data[$_csv_i]);
$_csv_data[$_csv_i] = str_replace($e . $e, $e, $_csv_data[$_csv_i]);
}
return empty ($_line) ? false : $_csv_data;
}
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
在本篇文章中我们给大家整理了关于PHP中filesize函数的用法和相关知识点,有需要的朋友们学习下。
今天小编就为大家分享一篇关于PDO::quote讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
异常处理是编程中十分重要但也最容易被人忽视的语言特性,下面这篇文章主要给大家介绍了关于Laravel异常上下文解决方案的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
在thinkphp中,count方法是一个统计查询方法,用于统计数据表或者数据记录数,返回的结果就是统计的字符数,语法为“$model -> [where() -> ] count();”。
今天本文的主题是如何通过PHP来判断一组数据是不是等比数列?对于PHP小白来说可能略有难度,但是相信大家阅读完本文,就对此类问题,了如指掌了。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008