這次帶給大家php資料匯出如何實現,php資料匯出實現的注意事項有哪些,以下就是實戰案例,一起來看一下。
開始使用是非常好用的,但是當需要導出的資料達到上萬條時就直接帶來記憶體不足的問題。
然後我找到了幾個解決方案。
前端解決方案
PHP配合SheetJS/js-xlsx導出Excel大量資料
這個方案好處的不需要額外的接口,但是要依賴前端開發者。
導出成csv
該方案速度較快,完全後端實現,缺點是csv 格式對導出的形式要求比較高,要求是純數據,不能存在圖片之類的富文本形式。
下面主要介紹一下匯出csv 的方式
php 官方文件的介紹
<?php $list = array ( array('aaa', 'bbb', 'ccc', 'dddd'), array('123', '456', '789'), array('"aaa"', '"bbb"') ); $fp = fopen('file.csv', 'w'); foreach ($list as $fields) { fputcsv($fp, $fields); } fclose($fp); ?>
匯出完整範例
<?php $name = 'test'; header ( "Content-type:application/vnd.ms-excel" ); header ( "Content-Disposition:filename=".$name.".csv" ); header ('Cache-Control: max-age=0'); //打开PHP文件句柄,php://output 表示直接输出到浏览器 $fp = fopen('php://output', 'a'); // 写入BOM头,防止乱码 fwrite($fp, chr(0xEF).chr(0xBB).chr(0xBF)); // 生成的测试数据 function test() { for ($i=0; $i < 150000; $i++) { yield ['name', $i, '男']; } } // 表头 $headers = ['名字', '年龄', '性别']; fputcsv($fp, $headers); foreach (test() as $value) { fputcsv($fp, $value); } fclose($fp); ?>
在laravel中配合chunk 使用可以方便快速匯出全部資料。
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
建議閱讀:
#####thinkphp5 migrate資料庫遷移使用詳解####### ###以上是php資料導出如何實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!