【新葡新京】php实现CSV文件导入和导出_php技巧_脚本之家

 新葡新京     |      2020-01-29 05:27

新葡新京,品类支出中,非常多时候要将表面CSV文件导入到数据库中或然将数据导出为CSV文件,那么具体该怎么得以达成呢?本文将采取PHP并组成mysql,达成了CSV格式数据的导入和导出功效。我们先希图mysql数据表,假设项目中有一张记录学子消息的表student,并有id,name,sex,age分别记录学子的全名、性别、年龄等音讯。

CREATE TABLE `student`  NOT NULL auto_increment, `name` varchar NOT NULL, `sex` varchar NOT NULL, `age` smallint NOT NULL default '0', PRIMARY KEY  ENGINE=MyISAM DEFAULT CHARSET=utf8; 

大家还亟需叁个html交互作用页面,放置导入表单和导出开关。

筛选好本地csv文件后,点击导入,提交到do.php?action=import管理,而点击导出按键则哀告地址do.php?action=export实行数量导出管理。

【新葡新京】php实现CSV文件导入和导出_php技巧_脚本之家。1.导入CSVdo.php须求依附get过来的参数,分别管理导入和导出进度,php布局如下:

include_once ; //连接数据库 $action = $_GET['action']; if  //导入CSV { //导入处理 }elseif //导出CSV { //导出处理 } 

导入CSV管理流程:校验csv文件合法性->张开读入并深入分析csv文件中的字段->循环获取各字段值->批量增多到数据表中->落成。

if  { //导入CSV $filename = $_FILES['file']['tmp_name']; if(emptyempty  { echo '请选择要导入的CSV文件!'; exit; } $handle = fopen; $result = input_csv; //解析csv $len_result = count; if { echo '没有任何数据!'; exit; } for($i = 1; $i < $len_result; $i++) //循环获取各字段值 { $name = iconv('gb2312', 'utf-8', $result[$i][0]); //中文转码 $sex = iconv('gb2312', 'utf-8', $result[$i][1]); $age = $result[$i][2]; $data_values .= "('$name','$sex','$age'),"; } $data_values = substr; //去掉最后一个逗号 fclose; //关闭指针 $query = mysql_query("insert into student  values $data_values"); //批量插入数据表中 if { echo '导入成功!'; }else{ echo '导入失败!'; } } 

注意php自带的fgetcsv函数能够轻便管理csv,使用该函数能够从文件指针中读入生机勃勃行并拆解深入分析CSV字段。上面包车型地铁函数将csv文件字段深入分析并以数组的花样重临。

function input_csv { $out = array (); $n = 0; while ($data = fgetcsv { $num = count; for ($i = 0; $i < $num; $i++) { $out[$n][$i] = $data[$i]; } $n++; } return $out; } 

除此以外在导入到数据库中时,我们利用的是批量陈设并不是一条条布置的,由此在营造SQL语句时,要稍作管理,见代码。

2.导出CSV咱俩掌握csv文件是由逗号分割符组成的纯文本文件,你能够用excel打开,效果跟xls表个相近。导出CSV管理流程:读取学子信息表->循环记录营造逗号分隔的字段新闻->设置header音讯->导出文件到地头

... }elseif  //导出CSV { $result = mysql_query("select * from student order by id asc"); $str = "姓名,性别,年龄n"; $str = iconv('utf-8','gb2312',$str); while($row=mysql_fetch_array { $name = iconv('utf-8','gb2312',$row['name']); //中文转码 $sex = iconv('utf-8','gb2312',$row['sex']); $str .= $name.",".$sex.",".$row['age']."n"; //用引文逗号分开 } $filename = date.'.csv'; //设置文件名 export_csv; //导出 } 

要将数据导出到地面即下在,需求匡正header消息,代码如下:

function export_csv { header("Content-type:text/csv"); header("Content-Disposition:attachment;filename=".$filename); header('Cache-Control:must-revalidate,post-check=0,pre-check=0'); header; header; echo $data; } 

留心导入和导出的经过中,因为大家采纳的是统生机勃勃UTF-8编码,境遇中文字符必须要记得转码,不然恐怕会并发普通话乱码的情事。

如上正是本文的全体内容,希望本文所述对大家的php程序设计具备利于。

上一篇:斯巴达浏览器或支持Chrome扩展 下一篇:没有了