php导出CSV文件和解决乱码问题

来源:互联网 发布:网络推广具体做什么 编辑:程序博客网 时间:2024/05/20 19:50

1、获取数据

<?phpheader("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);


2、导出CSV文件

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,所以上面要输出







原创粉丝点击