php导出数据到csv文件

本文介绍了一种使用PHP从数据库中导出预约订单数据为CSV格式的方法,并详细展示了如何处理字符编码、数据流输出及数据库查询分段等关键技术细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

$count = M('revieworder')->where($map)->count();
set_time_limit(0);
ini_set('memory_limit', '256M');
$filename = '预约' . time() . '.csv';
header("Content-type:text/csv");
header('Content-Disposition: attachment;filename="' . $filename . '"');
header('Cache-Control: max-age=0');
// 打开PHP文件句柄,php://output 表示直接输出到浏览器
$fp = fopen('php://output', 'a');
$head = array('编号','姓名','手机号','预约日期','***','区域','短信发送','备注','申请时间');
foreach ($head as $i => $v) {
// CSV的Excel支持GBK编码,一定要转换,否则乱码
$head[$i] = iconv('utf-8', 'gbk', $v);
}
// 将数据通过fputcsv写到文件句柄
fputcsv($fp, $head);
// 从数据库中获取数据,为了节省内存,不要把数据一次性读到内存,从句柄中一行一行读即可
$limit = 10000;
for ($i = 0; $i < $count; $i = $i + $limit) {
$list = M('revieworder')->where($map)->order('createtime desc')->limit($i, $limit)->select();
foreach ($list as $k => $val) {
$rows[0] = iconv('utf-8', 'gbk', $k + 1);
$rows[1] = iconv('utf-8', 'gbk', "\t" . $val['realname']);
$rows[2] = iconv('utf-8', 'gbk', $val['mobile']);
$rows[3] = iconv('utf-8', 'gbk', "\t" . getSubstr($val['orderdate'],0,10).' '.$val['amorpm']);
$rows[4] = iconv('utf-8', 'gbk', $val['subject']);
$rows[5] = iconv('utf-8', 'gbk', $val['area']);
$rows[6] = iconv('utf-8', 'gbk', $val['issend'] == '1'?'已发送':'未发送');
$rows[7] = iconv('utf-8', 'gbk', $val['note']);
$rows[8] = iconv('utf-8', 'gbk', time_format($val['createtime']));
fputcsv($fp, $rows);
unset($rows);
}
ob_flush();
flush(); //刷新buffer
}
exit;

转载于:https://www.cnblogs.com/wenxinphp/p/7094559.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值