php導出數據到csv


序言

  php導出數據到csv是一種很常見的功能,且csv相比於excel文件有其一定的優勢,首先csv對數據的行數沒有限制,但是excel對數據的行數有一定的限制,因此,csv文件對於導出大量的數據來說很方便。

相關函數

  • set_time_limit (0); //取消腳本運行時間的限制
  • ini_set('memory_limit', '256M');//設置php內存限制
  • 設置header頭
  • $fp = fopen("php://output", "w");//打開php數據輸出緩沖區,並返回一個句柄
  • mb_convert_variables('GBK', 'UTF-8', 數據);//將數據的字符集轉成GBK編碼
  • fputcsv(句柄, 數據);//將數據格式化為CSV格式並寫入到output流中
  • fclose(句柄);//關閉輸入緩沖區

示例代碼

function export()
{
    set_time_limit(0);
    ini_set('memory_limit', '256M');
    //下載csv的文件名
  $fileName = '示例.csv';
  //設置header頭
    header('Content-Description: File Transfer');
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment; filename="' . $fileName . '"');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    //打開php數據輸入緩沖區
    $fp = fopen('php://output', 'a');
    $heade = ['姓名', '性別', '手機號'];
    //將數據編碼轉換成GBK格式
    mb_convert_variables('GBK', 'UTF-8', $heade);
    //將數據格式化為CSV格式並寫入到output流中
    fputcsv($fp, $heade);
    $data = [
        ['小明', '男', 17699019191],
        ['小紅', '男', 17699019191],
        ['小黑', '女', 17699019191],
        ['小白', '女', 17699019191],
    ];
    //如果在csv中輸出一個空行,向句柄中寫入一個空數組即可實現
    foreach ($data as $row) {
        //將數據編碼轉換成GBK格式
        mb_convert_variables('GBK', 'UTF-8', $row);
        fputcsv($fp, $row);
        //將已經存儲到csv中的變量數據銷毀,釋放內存
        unset($row);
    }
    //關閉句柄
    fclose($fp);
    die;
} 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM