1. 程式人生 > >PHP匯出csv檔案

PHP匯出csv檔案

$filename="檔名稱"
//直接輸出到瀏覽器
ob_end_flush();
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$filename.'.csv"');
header('Cache-Control: max-age=0');
$fp=fopen('php://output', 'a');
$flush_count=0;//重新整理輸出buffer計數器
$flush_limit=500;//重新整理間隔

//寫入頭部標題
$csv_header=[];
$fields
=['編號','姓名','年齡','班級']; for($i=0;$i<count($fields);$i++){ array_push($csv_header,mb_convert_encoding($fields[$i],'gb2312','utf-8'));//注意編碼問題,若使用icovn部分轉碼失敗直接返回空 } fputcsv($fp, $csv_header); //寫入內容 //同寫入標題 //注意內容最好不含英文逗號 //例子 $data=[ ['001','張三','18','資訊01'], ['002','李四','19','資訊02'], ['003','王五','18'
,'資訊01'], ]; $all=count($data); for ($i=0;$i<$all;$i++){//資料庫取資料情況下,逐行取出資料,不浪費記憶體 $flush_count++; if ($flush_limit==$flush_count){ ob_flush(); flush(); $flush_count=0; } $row=$data[$i]; for ($k=0;$k<count($row);$k++){ $row[$k]=mb_convert_encoding($row
[$k],'gb2312','utf-8'); } fputcsv($fp, $row); } fclose($fp);