在数据库中获取数据的结果集,通过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="selectname,title,num,fid,detailsfromuserORDERBY`id`DESC";
$res=$nsodb->get_results($sql,ARRAY_A);
//打开文件,php://output输出到浏览器
$fp=fopen('php://output','a');
//定义表格标题
$head=array('名字','标题','编号','id','简述');
foreach($headas$i=>$v){
//设置键值数组
$head[$i]=iconv('utf-8','gbk',$v);
}
//写入标题
fputcsv($fp,$head);
//遍历从数据库获取的数据结果集,给数组,并转码成中文编码
foreach($resas$row){
foreach($rowas$i=>$v){
$row[$i]=iconv('utf-8','gbk',$v);
}
//依次把数据写入到csv文件中
fputcsv($fp,$row);
}
//关闭文件
//fclose($fp);
exit;
?>