PHP百萬級資料匯出csv格式OR文字格式
阿新 • • 發佈:2018-12-25
廢話不說,先來上一個小小的DEMO
<?php
header('Content-Type: text/csv');
header('Content-Transfer-Encoding: binary');
for($i=0;$i<500000;$i++){
echo "this is a test \n";
}
?>
將以上程式碼儲存為一個PHP檔案,然後執行,你會得到一個50萬行記錄的檔案。當然副檔名是php.以上程式碼是分析了PhpMyAdmin後得到的超級簡易版。
有了這個思路就相對簡單了,首先你要超檔案頭。
header('Content-Description: File Transfer'); header('Content-Disposition: attachment; filename="' . $this->fileName . '"'); header('Content-Type: text/csv'); header('Content-Transfer-Encoding: binary');
然後就是遍歷你的資料庫,將所有的內容echo即可。如果你對csv格式不瞭解的話,建議先普及一下。
首頁echo表頭
echo '列1,列2,列3';
echo chr(10);
接著把所有的記錄依次echo即可。
foreach($array){
echo 'a1,a2,a3';
echo chr(10);
}
上面的迴圈就是你遍歷資料庫的過程,這裡不同的專案有不同的規則就不再描述了。
因為開始已經聲明瞭檔案頭,所以你直接echo,當你echo完了瀏覽器也認為你下載完成了。