fputcsv 效率高,但是有时中文会乱码
解决方法,在使用fputcsv前加入代码fwrite($fp,chr(0xEF).chr(0xBB).chr(0xBF));
示例:
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="name.csv"');
header('Cache-Control: max-age=0');// 从数据库中获取数据,为了节省内存,不要把数据一次性读到内存,从句柄中一行一行读即可
$fp = fopen('php://output', 'a');
fwrite($fp,chr(0xEF).chr(0xBB).chr(0xBF));
// 输出Excel列名信息
$head = array('提交人','手机号', '标题', '内容');
fputcsv($fp, $head);
foreach($log as $k=>$v){
$nv=array($v['name'],'','','');
fputcsv($fp, $nv);
}