标签:index set end 表格 3w ob 内存 flush PHP
亲测有效,三万条数据秒秒钟导出
先进行数据表插入数据
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();
标签:index,set,end,表格,3w,ob,内存,flush,PHP 来源: https://blog.51cto.com/u_13481146/2819273
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。