php导出text文件(解决数据量过大变量内存溢出问题)
昨天小组长让我解决一个导出text文件,因为数据量过大(几万条)服务器内存又小。
导出几千条数据的时候还算好,数据量一大就GG了。
我是绞尽脑汁也没搞清楚如何向浏览器分次写入数据。
第一个思路是在服务器创建一个txt文件分次取出少量数据写入TXT文件,然后把文件地址发送给浏览器让浏览器跳转到该链接地址下载。
可惜我还在纠结怎么写的时候,小组长已经写好了。(受到了一万点真实伤害);
下面分享小组长的思路:
首先设置header头
//新建文件 设置header头部信息 $filename = "{$this->input['batch_id']}_{$itemInfo['title']}.txt"; $mime = 'application/force-download'; header('Pragma: public'); // required header('Content-Type: '.$mime); header('Content-Disposition: attachment; filename="'.$filename.'"'); header('Cache-Control: no-cache'); header('Content-Encoding:none');
ob_implicit_flush(true); // 打开绝对刷送
写入输出缓冲区 $fp = fopen('php://output', 'a'); // 输出流资源 $per_num = 500; // 每页数量 $page = 1; // 当前页数 $total_page = (总条数 / 每页页数); // 总页数 while(page <= total_page ){ $txt = '从数据库取出的数据 利用分页当前页数 取数据'; //写进文件 fwrite($fp,$txt); $page++ // 当前页数自增 } fclose($fp); // 关闭
ok 浏览器就收到了 下载请求。下载成功
楚天之怒 》原创,转载请保留文章出处。
本文链接:php导出text文件(解决数据量过大变量内存溢出问题) https://www.chutianzhinu.com/post-50.html
版权声明:若无特殊注明,本文皆为《
正文到此结束
发表吐槽
你肿么看?
既然没有吐槽,那就赶紧抢沙发吧!