php csv格式匯出大量資料
阿新 • • 發佈:2019-02-08
在php中,經常使用excel表格下載資料,但是當下載的資料量比較大時,會比較慢,以下方法適用於匯出大批量的資料,但是當帶出的欄位較多是,也會影響下載的速度。
<?php header ( "Content-type:application/vnd.ms-excel" ); header ( "Content-Disposition:filename=" . iconv ( "UTF-8", "gbk//IGNORE", "匯出csv" ) . ".csv" ); // 開啟PHP檔案控制代碼,php://output 表示直接輸出到瀏覽器 $fp = fopen('php://output', 'a'); $title = array('序號','工號'); // 將中文標題轉換編碼,否則亂碼 foreach ($title as $i => $v) { $title[$i] = iconv('utf-8', 'gbk//IGNORE', $v); } // 將標題名稱通過fputcsv寫到檔案控制代碼 fputcsv($fp, $title); $per = 5000; $i = 0; while (true) { $list = $model->getList($sql.'order by id asc limit '.$i*$per.','.$per,$params); if (empty($list)) { break; } foreach ($list as $key => $value) { $rows = array(); $rows[] = $value['id']; foreach ($rows as $k => $v) { $rows[$k] = iconv('utf-8', 'gbk//IGNORE', $v); } fputcsv($fp, $rows); } unset($list); ob_flush(); flush(); $i++; } exit;