php csv数据操作

大数据操作会出现资源占用严重?会出现网络延迟,用户体验效果较差?由于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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值