在做后台任务的时候,经常会遇到需要导出excel表格的情况,php插件里也提供了php_excel组件,功能也十分强大,但是在做导出超大文件的时候就会遇到内存溢出,运行时间超限的问题,并且无法回避,这是因为php_excel会将整个工作表都存在内存当中,数据太多肯定会内存溢; 并且对于excel的操作来说,如果在本地打开一个几十mb大小的excel文件基本也会很慢,再对其进行各种计算或操作也是很不友好的,直对来说csv文件会更加轻量,对服务器来说,csv文件的操作在I/O方面,内存使用相对很小,所以在做作数据导出时基本上都采用csv文件格式。
今天做个小记,代码如下:
//方法1: 打开一次文件,以追加的方式写入数据,会一直占用该文件资源,直到文件被关闭,资源被释放
function exportCsv1(){
$title = ['id','name','time'];
$file = date('Ymd').'_export.csv';
$fp = fopen($file,'w+'); //w+以追加的方式写入文件
if(flock($fp