导出数量巨大PHP版

用layui 导出发现,数据记录几十万会直接网页未响应,故需要另开函数方法


//先设置内存和无限制时间
ini_set("memory_limit", "1024M");
set_time_limit(0);

$filename = date('mdHi').'各标题的查阅量统计';
header('Content-Type: application/vnd.ms-excel;charset=gbk');
header('Content-Disposition: attachment;filename="' . $filename . '.csv"');
header('Cache-Control: max-age=0');
$head = array(
    'id',
    '创建日起',
    '创建日止',
    '审核日起',
    '审核日止',
    '标题',
    '阅读量',
);
$fp = fopen('php://output', 'a');
fputcsv($fp, $head);
unset($head);

//$count  查询多少数据 进行5000一次导出
if ($count > 0) {
    $page = ceil($count / 5000);
    for ($p = 1; $p <= $page; $p++) {
        //$data 查询 5000条记录的sql
        foreach ($data as $k => $v) {
            $data_list = array(
                'id' => $v[$prefix_name]['id'],
                'create_time_start' => $create_time_start,
                'create_time_end' => $create_time_end,
                'audited_date_start' => $audited_date_start,
                'audited_date_end' => $audited_date_end,
                'title' => $v[$prefix_name][$fields_title],
                'click' => $v[$prefix_name]['click'],
            );
            $data[] = $data_list;
            fputcsv($fp, $data_list);
            unset($data_list);
        }
        //刷新一下输出buffer,防止由于数据过多造成问题
        ob_flush();
        flush();
    }
    fclose($fp);
    exit;
}
exit;
(文章今日已有 1 人访问,总访问量 31 ::>_<::)

评论

  1. phpet
    博主
    Windows Chrome
    福建省厦门市 电信
    7 月前
    2025-4-17 15:56:15

    工作时想到方案

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇