防止报超内存,兼容中文,兼容科学技术法。 爽。。。。很爽。。。。
/**
* 告诉浏览器下载csv文件
* @param string $filename
*/
public static function downloadCsv($data, $filename, $encoding = 'utf-8')
{
header("Content-type: text/csv");
header("Content-type:application/vnd.ms-excel;charset=UTF-8");
header("Content-Disposition: attachment; filename={$filename}.csv");
header("Pragma: no-cache");
header("Expires: 0");
$fp = fopen('php://output', 'w');
fwrite($fp, chr(0xEF) . chr(0xBB) . chr(0xBF));
foreach ($data as $row) {
foreach ($row as &$v) {
if($encoding && $encoding != 'utf-8'){
$v = iconv('utf-8', $encoding, $v);
}
$v = is_numeric($v) ? $v . "\t" : $v;
}
fputcsv($fp, $row);
}
fclose($fp);
exit;
}