1. 程式人生 > >php 匯出資料到csv格式

php 匯出資料到csv格式

csv是一種常用的無格式型別的檔案,以逗號進行分隔,類似excel。

csv可以作為資料儲存的一種形式,與excel相比,它的優點就是開啟速度更快,粗略估計大概快了接近15倍左右。

以前寫過一篇文章,是用來網頁下載excel文件,但是資料過大之後,因為樣式的原因,以及一些其他原因,造成excel讀取緩慢,Google了一下,沒有找到最好的解決辦法,不過記得以前看過一篇文章,說csv比excel快,抱著試試的態度,寫了以下的程式碼:

<?php
header("Content-Type: application/force-download");
header("Content-type:text/csv;charset=utf-8");
header("Content-Disposition:filename=".date("YmdHis").".csv");
$list = array();
for($i = 0 ; $i < 100 ; ++$i){
   for($j = 0 ; $j < 100 ; ++$j){
        $list[] = array($i,$j,$i+$j,$i-$j,$i*$j);
    } 
}
echo "one,two,three,four,five\r";
ob_end_flush();
foreach($list as $rs)
{
    echo $rs[0].",".$rs[1].",".$rs[2].",".$rs[3].",".$rs[4]."\r";
    flush();
}
?>
程式碼很簡單,直接使用迴圈即可,只需要注意csv格式的檔案需要使用“逗號”進行分隔,並且需要將其放到雙引號中,在每行結局加上換行就好了,經測試,開啟速度一流,足夠應付大部分的需求了,不過如果資料過大還是會溢位記憶體,這就需要對資料進行分片處理了