php 匯出大資料到csv檔案

2021-09-24 22:12:41 字數 1535 閱讀 9424

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...