PHP csv文件导出 导出表格

这段PHP代码展示了如何导出CSV文件,设置内存限制,打开并写入数据到`demo.csv`。它通过分页从`table1`中查询数据,进行条件过滤,计算总和,然后将处理后的数据写入CSV文件。每写入一行,还会显示当前页面的内存使用情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    public function exportExcel()
    {

        ini_set ('memory_limit', '5555M');
        $fh = fopen(PACK_PATH."/demo.csv", 'w') or die("Can't open demo.csv");
        $page = 1;
        while (1){
            $limit = 1000;
            $offset = ($page - 1) * $limit;

            $where = array();
            $start_time ='2018-01-01';
            $end_time ='2018-12-31';
            $where['date'] = array('between', array($start_time, $end_time));
            $list  = M('table1')->db(1, 'DB_CONFIG_STATIC')->where($where)->limit("$offset,$limit")->field('str,sum(num) as num,date')->group('str')->select();
            if($list){
                foreach($list as $k => $v){
                    $v['str'] = str_replace('\\','',$v['str']);
                    $totle = M('table2')->db(1, 'DB_CONFIG_STATIC')-> where(sprintf("str = '%s'",$v['str'])) -> sum('total');
                    $leader_val = array(
                        str_replace('','',$v['str']),
                        $v['num'],
                        $totle?$totle:0
                    );
                    unset($totle);
                    if (fputcsv($fh, array_values($leader_val)) === false) {
                        die("Can't write CSV line");
                    }
                }
                unset($list);
                unset($leader_val);

                echo '第' . $page . '页占用内存大小:' . memory_get_usage() / 1024 . "kb\n";
                echo json_encode(array('status' => 200, 'page' => $page)) . "\n";
                $page++;
            }else{
                echo 'code died please reboot';
                exit();
            }
        }


    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值