LoginSignup
0
2

More than 5 years have passed since last update.

PHP 大容量ファイルをダウンロードする方法

Last updated at Posted at 2017-04-20

WEBで見れる管理画面でたくさんデータをダウンロードしたいって要件から作った話です。
そもそも、いくつまでファイルでかくなるとか要件になかったはずだし、改修しなくても数万件くらいは出来るんだからよくね??ちょっとだけ思った。
バッファしない作りだから、適当にlimit offsetすればいい感じに出来るはーず

対象読者 or 環境

PHP初心者、Linux系

最終的にどーなったか

download.php
<?php
$date = date("YmdHis");
$filename = "${date}.csv";
header('Content-Disposition: inline; filename=' . basename($filename));
header('Content-Type: application/csv');

$headers = [
    "ID",
    "NAME",
    "TEXT",
];
ob_end_clean();
ob_start();
echo join(",", $headers)."\n";
flush();
ob_flush();

$id = "id";
$name = "name";
$text = "text";
for ($i = 0; $i < 10; $i++) {
    $contents = [
        $id,
        $name,
        $text,
    ];
    echo join(",", $contents)."\n";
    flush();
    ob_flush();
    sleep(1);
}
return;

参考

あとがき

今回使ってたフレームワークでは、関数終了時自動でsetcookie()呼ばれてしまっていて、header返しやがってうざかった。
それに時間かかった。それだけ

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2