1、获取数据
<?php
header("Content-type:text/html;charset=utf-8");
$pdo = new PDO("mysql:host=localhost;dbname=text1", 'root', '');
$pdo->query("set names utf-8");
$sql = "select * from first";
$res = $pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC);
$str = '姓名,地址,电话'."\n";
foreach ($res as $row) {
$str .= $row['name'].','.$row['address'].','.$row['phone']."\n";
}
$filename = date("Ymd").'.csv';
export_csv($filename, $str);
function export_csv($filename, $data)
{
header("Content-type:text/csv");
header("Content-Disposition:attachment;filename=".$filename); // Content-Disposition指的是属性名,attachment指的是以附件形式下载,filename为默认保存文件名
header('Cache-Control:must-revalidate,post-check=0,pre-check=0'); // Cache-Control:must-revalidate强制不缓存,post-check=0,pre-check=0是IE5中的防缓存
header('Expires:0'); // 不缓存
header('Pragma:public');
echo chr(0xEF).chr(0xBB).chr(0xBF); // 解决乱码
echo $data;
}
3、解决乱码的补充
CSV文件要使用BOM标识字符编码,而PHP中是去除BOM的,BOM的编码方式是EE BB BF,所以上面要输出