今回は、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); ?>
thinkphp5の移行データベース移行の使用法の詳細な説明
以上がPHPデータエクスポートの実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。