在数据库中获取数据的结果集,通过fputcsv() 函数将行格式化为 CSV 并写入一个打开的文件。
fputcsv('打开的文件','数组数据'),该函数返回写入字符串的长度。若出错,则返回 false。
示例代码:<?php
//声明为excel文件
header('Content-Type: application/vnd.ms-excel');
//定义文件名
header('Content-Disposition: attachment;filename="csv_'.date('Ymd',time()).'.csv"');
//设置无缓存,每次页面刷新都到服务器拉取数据
header('Cache-Control: max-age=0');
//从数据库查询数据获取结果集
$sql = "select name,title,num,fid,details from user ORDER BY `id` DESC";
$res = $nsodb->get_results($sql, ARRAY_A);
//打开文件,php://output输出到浏览器
$fp = fopen('php://output', 'a');
//定义表格标题
$head = array('名字', '标题', '编号', 'id', '简述');
foreach ($head as $i => $v) {
//设置键值数组
$head[$i] = iconv('utf-8', 'gbk', $v);
}
//写入标题
fputcsv($fp, $head);
//遍历从数据库获取的数据结果集,给数组,并转码成中文编码
foreach ($res as $row) {
foreach ($row as $i => $v) {
$row[$i] = iconv('utf-8', 'gbk', $v);
}
//依次把数据写入到csv文件中
fputcsv($fp, $row);
}
//关闭文件
//fclose($fp);
exit;
?>