有时候在项目中需要这样一种功能:把数据库里面的数据查询出来后,保存到csv文件里面。然后下载到客户端。开发思路:
先把需要查询的数据从数据库里面查询出来;
把需要查询出来的数据写入到csv文件里面;
3. 保存到客户端(浏览器);
模拟生产(项目)情况,代码清单如下:
刘德华,age=>56,work=>演戏), array(username=>张学友,age=>55,work=>唱歌), ); $filename = date('ymd').'.csv'; data2csv($users,$filename); /** *@param $data array 从数据库里面查询出来的数据 *@param $download_file_name string 客户端下载后的文件名 */ function data2csv($data,$download_file_name){ header(content-type:text/csv); //保存文件的类型 header(content-disposition:attachment;filename=.$download_file_name);//保存文件的名字 header('cache-control:must-revalidate,post-check=0,pre-check=0'); header('expires:0'); header('pragma:public'); ob_start();//开启ob缓存 echo \xef\xbb\xbf; $df = fopen(php://output,'w'); $head = array_keys(reset($data)); fputcsv($df,$head);//保存第一行 foreach($data as $row){ fputcsv($df,$row); } fclose($df); echo ob_get_clean(); }
