php导出大数据excel

    require('./db.class.php');
    $DB = new db();
    $DB->connect();//数据库链接

    header("Content-Type: text/csv");
    header("Content-Disposition:filename=php100.csv");
    $sql = "select order_sn,consignee,address,tel,mobile,email,order_amount,add_time from order_info";//查询数据
    $order = $DB->fetch_all($sql);

    // 打开PHP文件句柄,php://output 表示直接输出到浏览器
    $fp = fopen('php://output', 'a');
    // 输出Excel列名信息

    foreach($order[0] as $key=>$value){
        $head[] = iconv('utf-8', 'gbk', $key);//头信息
    }

    // 将数据通过fputcsv写到文件句柄
    //fputcsv($fp, $head);

    // 计数器
    $cnt = 0;
    // 每隔$limit行,刷新一下输出buffer,不要太大,也不要太小
    $limit = 100000;

    // 逐行取出数据,不浪费内存
    $count = count($order);

    for($t=0;$t<$count;$t++) {

        $cnt ++;
        if ($limit == $cnt) { //刷新一下输出buffer,防止由于数据过多造成问题
            ob_flush();
            flush();
            $cnt = 0;
        }
        foreach ($order[$t] as $i => $v) {
            if($i == 'add_time') {
                $row[$i] = iconv('utf-8', 'gbk', date('Y-m-d H:i:s',$v));
            }else{
                $row[$i] = iconv('utf-8', 'gbk', $v);
            }
        }
        fputcsv($fp, $row);
        unset($row);
    }

转载于:https://my.oschina.net/u/588516/blog/484307

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值