require('./db.class.php');
$DB = new db();
$DB->connect();//數據庫連接
header("Content-Type: text/csv");
header("Content-Disposition:filename=php100.csv");
$sql = "select order_sn,consignee,address,tel,mobile,email,order_amount,add_time from order_info";//查詢數據
$order = $DB->fetch_all($sql);
// 打開PHP文件句柄,php://output 表示直接輸出到瀏覽器
$fp = fopen('php://output', 'a');
// 輸出Excel列名信息
foreach($order[0] as $key=>$value){
$head[] = iconv('utf-8', 'gbk', $key);//頭信息
}
// 將數據經過fputcsv寫到文件句柄
//fputcsv($fp, $head);
// 計數器
$cnt = 0;
// 每隔$limit行,刷新一下輸出buffer,不要太大,也不要過小
$limit = 100000;
// 逐行取出數據,不浪費內存
$count = count($order);
for($t=0;$t<$count;$t++) {
$cnt ++;
if ($limit == $cnt) { //刷新一下輸出buffer,防止因爲數據過多形成問題
ob_flush();
flush();
$cnt = 0;
}
foreach ($order[$t] as $i => $v) {
if($i == 'add_time') {
$row[$i] = iconv('utf-8', 'gbk', date('Y-m-d H:i:s',$v));
}else{
$row[$i] = iconv('utf-8', 'gbk', $v);
}
}
fputcsv($fp, $row);
unset($row);
}php