1. 程式人生 > >PHP百萬級資料匯出csv格式OR文字格式

PHP百萬級資料匯出csv格式OR文字格式

廢話不說,先來上一個小小的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完了瀏覽器也認為你下載完成了。