set_time_limit(0);
ini_set ('memory_limit', '256m');
$db = $this->load->database('default',true);
$sql = "select * from `t_mobile_number_section` $condition";
$query = $db->query($sql);
$result = $query->result_array();
$filename = 'number'.time().'.csv';
header('content-disposition: attachment;filename="'.$filename.'"');
header('cache-control: max-age=0');
// 開啟php檔案控制代碼,php://output 表示直接輸出到瀏覽器
$fp = fopen('php://output', 'a');
// 輸出excel列名資訊
$head = array($title['number_section'],$title['area_code'],$title['province'],$title['city']);
foreach ($head as $i => $v) {
// csv的excel支援gbk編碼,一定要轉換,否則亂碼
$head[$i] = iconv('utf-8', 'gbk', $v);
// 將資料通過fputcsv寫到檔案控制代碼
fputcsv($fp, $head);
// 計數器
$cnt = 0;
$limit = 100000;
// 從資料庫中獲取資料,為了節省記憶體,不要把資料一次性讀到記憶體,從控制代碼中一行一行讀即可
$i = 2;
$count = 0;
foreach ($result as $key => $val) {
$count ++;
$cnt ++;
//每隔$limit行,重新整理一下輸出buffer,不要太大,也不要太小 ,大資料量時處理
if ($limit == $cnt) { //重新整理一下輸出buffer,防止由於資料過多造成問題
ob_flush();
flush(); //重新整理buffer
$cnt = 0;
$rows[$i] = iconv('utf-8', 'gbk', $val['number_section']);
$rows[$i+1] = iconv('utf-8', 'gbk', $val['area_code']);
$rows[$i+2] = iconv('utf-8', 'gbk', $val['province']);
$rows[$i+3] = iconv('utf-8', 'gbk', $val['city']);
fputcsv($fp, $rows);
exit; //記得加這個,不然會跳轉到某個頁面。
PHP匯出資料到CSV檔案
後台往往需要匯出各種資料到 excel文件中。通常我們是匯出 csv檔案格式,php匯出函式參考 如下 匯出資料到csv檔案 param array data 二維陣列 模擬資料表記錄 param array titlelist 標題陣列列表 param string filename csv檔名 ...
php匯出大資料csv
author 漫步雲端 header content type text html charset utf 8 class phpcsv public function settile title public function init fputcsv this fp,this sheethead...
php匯出百萬資料到csv
set time limit 0 設定超時 ini set memory limit 100m 設定最大使用的記憶體 header content type text csv header content disposition attachment filename date ymd csv he...