您的位置:首页 > 编程语言 > PHP开发

PHP导出MySQL数据到Excel文件(fputcsv)

2014-05-20 22:26 736 查看
开发中经常会碰到导出MySQL数据到Excel文件的需求。一些开源的类库,如PHPExcel,确实比较容易实现,但由于对大量数据的兼容很不好,很容易到达PHP内存使用上限。

小编整理了一下fputcsv写CSV文件的方式,具体实现代码如下:

//声明文件头,文件名news.csv,需自行修改
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="news.csv"');
header('Cache-Control: max-age=0');

//打开文件句柄,并输出至浏览器
$fp = fopen('php://output', 'a');

//定义并输出Excel列名
$t = array('编号', '标题');
foreach ($t as $_k => $_v) {
//转码,CSV的Excel支持GBK编码
$t[$_k] = iconv('utf-8', 'gbk', $_v);
}
fputcsv($fp, $t);

//操作数据库,读取数据
$condition = '1';
$result = $db->query("SELECT * FROM e_article WHERE {$condition}");

//初始化计数器
$i = 0;
//定义刷新输出缓冲频率行数
$limit = 100000;
while($r = $db->fetch_array($result)) {
$i++;
if($i < $limit){
//刷新输出buffer
ob_flush();
flush();
$i = 0;
}

//转码
foreach ($r as $k => $v) {
$r[$k] = iconv('utf-8', 'gbk', $v);
}
fputcsv($fp, $r);
}
$db->free_result($result);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: