php导出csv

在工作中遇到的导出csv表格。贴出来和大家分享下
 
/**
*
* @param $filename 要导出的文件名
* @param $firstline 第一行内容数组
* eg $firstline = ['姓名','性别','年龄'];
* @param $data 要导出的内容数组
* 二维数组 eg [['name'=>'xx','sex'=>'xx','1'],['name'=>'xx','sex'=>'xx','1']]
*/
public static function export_csv($filename, $firstlinearr, $dataarr)
{
$str = '';
foreach ($firstlinearr as $first) {
$first = str_replace(array("\r\n", "\r", "\n"), '', $first);
$str .= ',' . iconv('utf-8', 'gbk//IGNORE', $first); // 中文转码
}
$str = ltrim($str, ',') . "\n";
foreach ($dataarr as $val) {
$valuestr = '';
foreach ($val as $value) {
$value = str_replace(array("\r\n", "\r", "\n"), '', $value);
$valuestr .= ',' . iconv('utf-8', 'gbk//IGNORE', $value); // 中文转码
}
$str .= ltrim($valuestr, ',') . "\n";
}
$filename = $filename . date('YmdHis') . '.csv'; // 设置文件名
header("Content-type:text/csv");
header("Content-Disposition:attachment;filename=" . $filename);
header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
header('Expires:0');
header("Pragma: no-cache");
echo $str;
exit();
}

0 个评论

要回复文章请先登录注册