杭州网站建设价格,什么平台,友链外链app,seo教程百度云我们先准备mysql数据表#xff0c;假设项目中有一张记录学生信息的表student#xff0c;并有id#xff0c;name#xff0c;sex#xff0c;age分别记录学生的姓名、性别、年龄等信息。CREATE TABLE student (id int(11) NOT NULL auto_increment,name varchar(50) NOT NULL…我们先准备mysql数据表假设项目中有一张记录学生信息的表student并有idnamesexage分别记录学生的姓名、性别、年龄等信息。CREATE TABLE student (id int(11) NOT NULL auto_increment,name varchar(50) NOT NULL,sex varchar(10) NOT NULL,age smallint(3) NOT NULL default 0,PRIMARY KEY (id)) ENGINEMyISAM DEFAULT CHARSETutf8;我们还需要一个html交互页面放置导入表单和导出按钮。请选择要导入的CSV文件classbtn value导入CSV选择好本地csv文件后点击导入提交到do.php?actionimport处理而点击导出按钮则请求地址do.php?actionexport进行数据导出处理。1.导入CSVdo.php需要根据get过来的参数分别处理导入和导出过程php结构如下include_once (connect.php); //连接数据库$action $_GET[action];if ($action import) //导入CSV{//导入处理}elseif($actionexport) //导出CSV{//导出处理}导入CSV处理流程校验csv文件合法性(本文忽略)-打开读入并解析csv文件中的字段-循环获取各字段值-批量添加到数据表中-完成。if ($action import) { //导入CSV$filename $_FILES[file][tmp_name];if(emptyempty ($filename)){echo 请选择要导入的CSV文件;exit;}$handle fopen($filename, r);$result input_csv($handle); //解析csv$len_result count($result);if($len_result0){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($data_values,0,-1); //去掉最后一个逗号fclose($handle); //关闭指针$query mysql_query(insert into student (name,sex,age) values $data_values); //批量插入数据表中if($query){echo 导入成功;}else{echo 导入失败;}}注意php自带的fgetcsv函数可以轻松处理csv使用该函数可以从文件指针中读入一行并解析CSV字段。下面的函数将csv文件字段解析并以数组的形式返回。function input_csv($handle){$out array ();$n 0;while ($data fgetcsv($handle, 10000)){$num count($data);for ($i 0; $i $num; $i){$out[$n][$i] $data[$i];}$n;}return $out;}此外在导入到数据库中时我们采用的是批量插入而不是一条条插入的因此在构建SQL语句时要稍作处理见代码。2.导出CSV我们知道csv文件是由逗号分割符组成的纯文本文件你可以用excel打开效果跟xls表个一样。导出CSV处理流程读取学生信息表-循环记录构建逗号分隔的字段信息-设置header信息-导出文件(下载)到本地...}elseif ($actionexport) //导出CSV{$result mysql_query(select * from student order by id asc);$str 姓名,性别,年龄\n;$str iconv(utf-8,gb2312,$str);while($rowmysql_fetch_array($result)){$name iconv(utf-8,gb2312,$row[name]); //中文转码$sex iconv(utf-8,gb2312,$row[sex]);$str . $name.,.$sex.,.$row[age].\n; //用引文逗号分开}$filename date(Ymd)..csv; //设置文件名export_csv($filename,$str); //导出}要将数据导出到本地即下在需要修改header信息代码如下function export_csv($filename,$data){header(Content-type:text/csv);header(Content-Disposition:attachment;filename.$filename);header(Cache-Control:must-revalidate,post-check0,pre-check0);header(Expires:0);header(Pragma:public);echo $data;}注意导入和导出的过程中因为我们使用的是统一UTF-8编码遇到中文字符一定要记得转码否则可能会出现中文乱码的情况。好了本文讲解到此后面我还会有文章介绍PHP结合mysql导入导出excel以及xml的导入导出敬请关注。