php csv数据操作

来源:互联网 发布:网贷数据公司怎么样 编辑:程序博客网 时间:2024/05/22 07:43
大数据操作会出现资源占用严重?会出现网络延迟,用户体验效果较差?由于phpExcel插件限制较多,不适合用于大数据操作,而且excel的写入数据有限,占用资源较多。
下面使用php自导的数据操作函数实现数据导入导出
数据导出:public function export_csv($filename,$data) {        header("Content-type:text/csv");        header("Content-Disposition:attachment;filename=".$filename);        header('Cache-Control:must-revalidate,post-check=0,pre-check=0');        header('Expires:0');        header('Pragma:public');        echo $data;    }    public function z_excel(){        $str = "姓名,性别,年龄,姓名,性别,年龄\n";        $str = iconv('utf-8','gb2312',$str);        for($i=0;$i<300000;$i++){            $row[$i] =  ['xxx','男',22,'xxx','男',22];        }        for($i=0;$i<count($row);$i++){            $name = iconv('utf-8','gb2312',$row[$i][0]); //中文转码            $sex = iconv('utf-8','gb2312',$row[$i][1]);            $age = $row[$i][2]; //中文转码            $name2 = iconv('utf-8','gb2312',$row[$i][3]); //中文转码            $sex2 = iconv('utf-8','gb2312',$row[$i][4]);            $age2 = $row[$i][5];            $str .= $name.",".$sex.",".$age.",".$name2.",".$sex2.",".$age2."\n"; //用引文逗号分开        }        $filename = date('YmdHis',time()).'.csv'; //设置文件名        $this->export_csv($filename,$str); //导出    }

注意:csv导出文件名后缀,数据编码等。

数据导入: $filename = $_FILES['file']['tmp_name'];     if (empty ($filename)) {         echo '请选择要导入的CSV文件!';         exit;     }     $handle = fopen($filename, 'r');     $result = input_csv($handle); //解析csv     $len_result = count($result);     if($len_result==0){         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 '导入失败!';     } 
注意:这里导入是采用批量导入,所以sql语句写法与单条写入的写法不一样;还有就是数据的编码,防止导入数据库中出现乱码。

1 0
原创粉丝点击