PHP实现及时天生并下载超大数据量的EXCEL文件详解
媒介最近在事变中接到一个需求,通过选择的时刻段导出对应的用户会见日记到excel中, 因为用户量较大,常常会有导出50万加数据的环境。而常用的PHPexcel包必要把全部数据拿到后才气天生excel, 在面临天生超大数据量的excel文件时这显然是会造成内存溢出的,以是思量行使让PHP边写入输出流边让赏识器下载的情势来完成需求。 我们通过如下的方法写入PHP输出流
其它因为excel数据是从数据库里慢慢读出然后写入输出流的以是必要将PHP的执行时刻设长一点(默认30秒) 注:以下代码只是阐发天生大数据量EXCEL的思绪和步调,而且在去掉项目营业代码后措施有语法错误不能拿来直接运行,请按照本身的需求添补对应的营业代码! getArticleAccessLog($timeStart,$timeEnd,$lastId,$perSize);
foreach($accessLog as $access) {
$rowData = [
......//每一行的数据
];
mb_convert_variables('GBK',$rowData);
fputcsv($fp,$rowData);
$lastId = $access->id;
}
unset($accessLog);//开释变量的内存
//革新输出缓冲到赏识器
ob_flush();
flush();//必需同时行使 ob_flush() 和flush() 函数来革新输出缓冲。
}
fclose($fp);
exit();
}
好了, 着实很简朴,就是用慢慢写入输出流并发送到赏识器让赏识器去慢慢下载整个文件,因为是慢慢写入的无法获取文件的总体size以是就没步伐通过配置 总结以上就是这篇文章的所有内容了,但愿本文的内容对各人的进修可能事变具有必然的参考进修代价,假若有疑问各人可以留言交换,感谢各人对编程之家的支持。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |