利用PHP怎么導出超大的CSV、EXCEL文件?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
一、導出思路
需要考慮服務器內(nèi)存
需要考慮程序運行的較大時間
缺少BOM頭導致亂碼的處理
如果導出數(shù)量過大,推薦使用循環(huán)導出,每次循環(huán)這里以導出一萬條為例,循環(huán)100次即可全部導出
二、導出源碼
下面源碼將數(shù)據(jù)庫信息修改成自己的即可使用
親測導出一百萬條數(shù)據(jù),3個字段,不過20秒
如果服務器硬件不支持一次讀取一萬條數(shù)據(jù),可將循環(huán)次數(shù)提高,導出數(shù)量降低
query($sql); $result = $pdostatement->fetchAll(PDO::FETCH_ASSOC); foreach ($result as $item) { fputcsv($fp, $item); } //每1萬條數(shù)據(jù)就刷新緩沖區(qū) ob_flush(); flush(); }
三、快速生成百萬條測試數(shù)據(jù)
這里推薦數(shù)據(jù)庫的蠕蟲復制命令
先建好表后,插2條測試數(shù)據(jù)后,執(zhí)行幾次下列命令,即可指數(shù)增長
INSERT INTO hd_test (uname,age,city) SELECT uname,age,city FROM hd_test;
關(guān)于利用PHP怎么導出超大的CSV、EXCEL文件問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。