/** 如果大量数据导出 支持分页写入 * [downloaddate 公共导出csv] * @param string $name [文件名称] * @param array $header [表头] * @param array $data [数据集] * @param $is_header [真 假 是否取表头 解决循环写入问题] * @return array name[文件名称] filepath[文件路径] */ public static function downloaddata($name='',$header=array(),$data=array(),$is_header=true){ set_time_limit(0); ini_set('memory_limit','2048m'); header("content-type:application/vnd.ms-excel"); header("content-disposition:filename=downloaded.pdf "); try { if (!$name || !$data) { throw new badrequesthttpexception('参数不可为空'); } $filepath = "./temp/download/{$name}.csv"; $header = implode(",",$header); $header = iconv('utf-8', 'gbk//ignore', $header); $header = explode(",", $header); $fp = fopen($filepath, 'a+'); if (!empty($header) && is_array($header) && $is_header) { fputcsv($fp, $header); } foreach ($data as $row) { $str = implode("@@@@",$row); $str = iconv('utf-8', 'gbk//ignore', $str); $str = str_replace(",","|",$str); $row = explode("@@@@", $str); fputcsv($fp, $row); } unset($data); if(ob_get_level()>0){ ob_flush(); } flush(); } catch (exception $e) { throw new badrequesthttpexception($e->getmessage());//抛出异常 } return [ 'filepath'=>ltrim($filepath,"./"), 'name'=>$name.'.csv', ]; }
相关推荐:
php导出csv文件:指定编码导出与csv文件导入与导出类
php实现csv文件导入和导出,
以上就是php如何导出csv文件(代码示例)的详细内容。
