php导出csv

$filename="文件名称"

//直接输出到浏览器

ob_end_flush();

header('Content-Type: application/vnd.ms-excel');

header('Content-Disposition: attachment;filename="'.$filename.'.csv"');

header('Cache-Control: max-age=0'); $fp=fopen('php://output', 'a');

$flush_count=0;//刷新输出buffer计数器

$flush_limit=500;//刷新间隔

//写入头部标题

$csv_header=[];

$fields=['编号','姓名','年龄','班级'];

for($i=0;$i<count($fields);$i++){

array_push($csv_header,mb_convert_encoding($fields[$i],'gb2312','utf-8'));//注意编码问题,若使用icovn部分转码失败直接返回空

}

fputcsv($fp, $csv_header);

//写入内容

//同写入标题

//注意内容最好不含英文逗号

//例子

$data=[ ['001','张三','18','信息01'], ['002','李四','19','信息02'], ['003','王五','18','信息01'], ];

$all=count($data);

for ($i=0;$i<$all;$i++){

//数据库取数据情况下,逐行取出数据,不浪费内存

$flush_count++;

if ($flush_limit==$flush_count){

ob_flush();

flush();

$flush_count=0;

}

$row=$data[$i];

for ($k=0;$k<count($row);$k++){

$row[$k]=mb_convert_encoding($row[$k],'gb2312','utf-8');

}

fputcsv($fp, $row);

}

fclose($fp);

原文地址:https://www.cnblogs.com/wzjwffg/p/10238854.html