博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php导出excel不断刷新缓冲区的思路(转)
阅读量:6370 次
发布时间:2019-06-23

本文共 981 字,大约阅读时间需要 3 分钟。

require('./db.class.php');

$DB = new db();
$DB->connect();//数据库链接

header("Content-Type: text/csv");

header("Content-Disposition:filename=php100.csv");
$sql = "select order_sn,consignee,address,tel,mobile,email,order_amount,add_time from order_info";//查询数据
$order = $DB->fetch_all($sql);

// 打开PHP文件句柄,php://output 表示直接输出到浏览器

$fp = fopen('php://output', 'a');
// 输出Excel列名信息

foreach($order[0] as $key=>$value){

$head[] = iconv('utf-8', 'gbk', $key);//头信息
}

// 将数据通过fputcsv写到文件句柄

//fputcsv($fp, $head);

// 计数器

$cnt = 0;
// 每隔$limit行,刷新一下输出buffer,不要太大,也不要太小
$limit = 100000;

// 逐行取出数据,不浪费内存

$count = count($order);

for($t=0;$t<$count;$t++) {

$cnt ++;

if ($limit == $cnt) { //刷新一下输出buffer,防止由于数据过多造成问题
ob_flush();
flush();
$cnt = 0;
}
foreach ($order[$t] as $i => $v) {
if($i == 'add_time') {
$row[$i] = iconv('utf-8', 'gbk', date('Y-m-d H:i:s',$v));
}else{
$row[$i] = iconv('utf-8', 'gbk', $v);
}
}
fputcsv($fp, $row);
unset($row);
}

转载于:https://www.cnblogs.com/xingmeng/p/3232424.html

你可能感兴趣的文章
网络请求
查看>>
Android实现自定义引导页(实现跟随式小圆点效果)
查看>>
手机自动化培训:Appium介绍
查看>>
netstat及tcp状态
查看>>
【安全牛学习笔记】Smurf***、Sockstress
查看>>
Solaris 10 开启FTP服务
查看>>
color透明度对照表
查看>>
win7&win8用dosbox安装masm611教程
查看>>
关于flash怎样引用到网页中的实践
查看>>
BPM实例分享:如何设置开窗高度与宽度?
查看>>
迅雷链技术沙龙第一站:百万级TPS是怎样炼成的
查看>>
Lookup 组件用法全解
查看>>
Mybatis jpa mini 代码解析
查看>>
zepto和jquery的区别,zepto的不同使用7条小结
查看>>
Quartz的使用
查看>>
电脑结构和CPU、内存、硬盘三者之间的关系
查看>>
C#获取本地计算机名,IP,MAC地址,硬盘ID
查看>>
马哥学习-----李洋个人笔记之压缩,解压缩及归档
查看>>
ios8新特性屏幕适配之sizeclass
查看>>
SQL是高级的非过程化编程语言
查看>>