zoukankan      html  css  js  c++  java
  • PHP导出3w条数据成表格

    亲测有效,三万条数据秒秒钟导出

    先进行数据表插入数据

    ini_set('memory_limit','1024M'); //设置程序运行的内存
        ini_set('max_execution_time',0); //设置程序的执行时间,0为无上限
        ob_end_clean();  //清除内存
        ob_start();
            $in = 0;
            for($i=2880;$i<=30000; $i++) {
                $data = ['uname'=>'uname:'.$i, 'aname'=>'账号:'.$i, 'pwd'=>'111'.$i];
                $r = DB::table('enroll_activity_admin')->insert($data);
                 if($in==1000){ //每次写入1000条数据清除内存
                        $in=0;
                        ob_flush();//清除内存
                       
                    }
                    $in++;
            }  
            ob_end_clean();die;
    

      在进行导出数据

        $fileName = '酒店';
        $headArr = ['姓名', '账号', '密码']; //表头,名称可自定义
        $data = Db::table('enroll_activity_admin')->where('is_del','0')->field('uname,aname,pwd')->select();
        ini_set('memory_limit','1024M'); //设置程序运行的内存
        ini_set('max_execution_time',0); //设置程序的执行时间,0为无上限
        ob_end_clean();  //清除内存
        ob_start();
        header("Content-Type: text/csv");
        header("Content-Disposition:filename=".$fileName.'.csv');
        $fp=fopen('php://output','w');
        fwrite($fp, chr(0xEF).chr(0xBB).chr(0xBF));
        fputcsv($fp,$headArr);
        $index = 0;
        foreach ($data as $item) {
            if($index==1000){ //每次写入1000条数据清除内存
                $index=0;
                ob_flush();//清除内存
                flush();
            }
            $index++;
            fputcsv($fp,$item);
        }
     
        ob_flush();
        flush();
        ob_end_clean();
  • 相关阅读:
    GridView自定义分页
    intro
    ListView和DataPager初试
    在DataGrid中,如何录入数量及单价的时候自动算出金额
    常用正则表达式
    ASP.NET中基类页的设计和使用
    Asp.net实现无刷新检测用户名
    在asp.net2.0中使用存储过程
    .NET中的抽象工厂
    用C#生成随机中文汉字验证码的基本原理 [转]
  • 原文地址:https://www.cnblogs.com/yszr/p/11841268.html
Copyright © 2011-2022 走看看