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
正文到此结束

热门推荐

发表吐槽

你肿么看?

你还可以输入 250 / 250 个字

嘻嘻 大笑 可怜 吃惊 害羞 调皮 鄙视 示爱 大哭 开心 偷笑 嘘 奸笑 委屈 抱抱 愤怒 思考 日了狗 胜利 不高兴 阴险 乖 酷 滑稽

评论信息框

吃奶的力气提交吐槽中...


既然没有吐槽,那就赶紧抢沙发吧!