zoukankan      html  css  js  c++  java
  • php导出csv

    ini_set('memory_limit', '-1');
    set_time_limit(0);
    $list = [];
    $title = [
    ];
    $fileName = 'list_' . date('YmdHis') . rand(1,
    10000) . ".csv";  //这里定义表名。简单点的就直接  $fileName = time();
    ob_flush();
    header('Pragma: public');
    header('Expires: 0');
    header('Cache-Control:must-revalidate, post-check=0, pre-check=0');
    header('Content-Type:application/force-download');
    header('Content-Type:application/vnd.ms-execl.numberformat:@;charset=GB2312;');
    header('Content-Type:application/octet-stream');
    header('Content-Type:application/download');;
    header('Content-Disposition: attachment;filename="' . $fileName . '"');
    header('Content-Transfer-Encoding:binary');
    $index = 0;
    $fp = fopen('php://output', 'a'); //打开php文件句柄,php://output表示直接输
    foreach ($title as $k => $v) {
    $title[$k] = iconv("UTF-8", "GBK//IGNORE",
    $v); //将utf-8编码转为gbk。理由是: Excel 以 ANSI 格式打开,不会做编码识别。如果直接用 Excel 打开 UTF-8 编码的 CSV 文件会导致汉字部分出现乱码。
    }
    fputcsv($fp, $title); //fputcsv() 函数将行格式$head化为 CSV 并写入一个打开的文件$fp。
    $data = []; //要导出的数据的顺序与表头一致;提前将最后的值准备好(比如:时间戳转为日期等)
    $list = $list()['list']->toArray();
    foreach ($list as $key => $item) {
    if ($index == 10000) {
    $index = 0;
    ob_flush();//清除内存
    flush();
    }
    $index++;
    $data = []

    foreach ($data as $k => $i) { //$item为一维数组哦
    $data[$k] = iconv("UTF-8", "GBK//IGNORE", $i); //转为gbk的时候可能会遇到特殊字符‘-’之类的会报错,加 ignore表示这个特殊字符直接忽略不做转换。
    }
    fputcsv($fp, $data);
    unset($data);
    }
    ob_flush();
    flush();
    fclose($fp);
    exit; //记得加这个,不
  • 相关阅读:
    如何打开windows的远程桌面
    mongodb存储引擎
    使用场景举例
    webpack初识
    mongodb快速入门
    mongodb初识
    mysql主从复制与读写分离
    gradle简单配置跟模块依赖
    mysql执行计划
    synchronized的可见性理解
  • 原文地址:https://www.cnblogs.com/huangguojin/p/14067931.html
Copyright © 2011-2022 走看看