ホームページ >バックエンド開発 >PHPチュートリアル >PHPデータエクスポートの詳しい説明

PHPデータエクスポートの詳しい説明

小云云
小云云オリジナル
2018-02-23 15:23:011921ブラウズ

最近、バックエンドでデータを Excel にエクスポートする必要があるため、php Excel を使用することがよくあります。 phpエクセルのパッケージ。
最初は非常に使いやすいですが、エクスポートする必要があるデータが数万に達すると、メモリ不足の問題が直接発生します。

このソリューションの利点は、追加のインターフェイスが必要ないことですが、それはフロントエンド開発者によって異なります。

  • CSV にエクスポート

このソリューションは高速で、完全にバックエンドで実装されています。欠点は、CSV 形式には純粋なデータが必要であり、次のようなリッチ テキスト フォームを含めることができないことです。ピクチャー。

以下では主にcsvエクスポートの方法を紹介します

PHP公式ドキュメントの紹介

<?php

$list = array (
    array(&#39;aaa&#39;, &#39;bbb&#39;, &#39;ccc&#39;, &#39;dddd&#39;),
    array(&#39;123&#39;, &#39;456&#39;, &#39;789&#39;),
    array(&#39;"aaa"&#39;, &#39;"bbb"&#39;)
);

$fp = fopen(&#39;file.csv&#39;, &#39;w&#39;);

foreach ($list as $fields) {
    fputcsv($fp, $fields);
}

fclose($fp);
?>

完全なエクスポート例

<?php

$name = &#39;test&#39;;
header ( "Content-type:application/vnd.ms-excel" );
header ( "Content-Disposition:filename=".$name.".csv" );
header (&#39;Cache-Control: max-age=0&#39;);

//打开PHP文件句柄,php://output 表示直接输出到浏览器
$fp = fopen(&#39;php://output&#39;, &#39;a&#39;);    

// 写入BOM头,防止乱码
fwrite($fp, chr(0xEF).chr(0xBB).chr(0xBF)); 

// 生成的测试数据
function test()
{
    for ($i=0; $i < 150000; $i++) {
        yield [&#39;name&#39;, $i, &#39;男&#39;];
    }
}

// 表头
$headers = [&#39;名字&#39;, &#39;年龄&#39;, &#39;性别&#39;];

fputcsv($fp, $headers);

foreach (test() as $value) {
    fputcsv($fp, $value);
}

fclose($fp);
?>

laravelのチャンクで使うと簡単かつ迅速に全データをエクスポートできます。

関連する推奨事項:

PHP データ エクスポートの知識ポイントの詳細な説明

PHP データ エクスポートと WEB サービスに関する問題

PHP データ エクスポートと WEB サービスに関連する問題


以上がPHPデータエクスポートの詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。