当前位置 : 主页 > 网络编程 > PHP >

PHP导出CSV文件

来源:互联网 收集:自由互联 发布时间:2021-06-28
PHP导出CSV文件 /*PHP导出CSV文件CSV文件是一个标准的文本文件,用逗号分隔分列数据1、将要导出的数据按行、列连接成字符串并写入文件即可。2、此处是直接将CSV文件向浏览器窗体推送
PHP导出CSV文件
/*
PHP导出CSV文件

CSV文件是一个标准的文本文件,用逗号分隔分列数据
1、将要导出的数据按行、列连接成字符串并写入文件即可。
2、此处是直接将CSV文件向浏览器窗体推送也提供下载保存
3、此分代码不完整

*/

public function export_Out_ShebeiCsv(){
    $filename='全部设备列表.csv';

    //$db这是传入的数据集
    //第1行是字段名,使用表字段注释来显示
    //$sqlstr="select COLUMN_NAME,column_comment from INFORMATION_SCHEMA.Columns where table_name='shebei' and table_schema='viedonet'";
    //是一个二维数组,一维索引,二维关联		
    $sqlstr="select column_comment from INFORMATION_SCHEMA.Columns where table_name='shebei' and table_schema='viedonet'";
    $btArr=Db::query($sqlstr);

    $csv='';
    foreach ($btArr as $k => $v) {
        $csv.=$v['column_comment'].',';
    }
    $csv=preg_replace('/,$/', "\r\n", $csv);//把最后一个逗号换成换行符号
    $encode = mb_detect_encoding($csv, array("ASCII",'UTF-8',"GB2312","GBK",'BIG5'));//检测当前字符集
    $csv=iconv($encode, "GB2312", $csv);//将字符转成GB2312,不然得到文件会是乱码!
    $ls_csv='';

    if($db){//当数据集合非空时才循环,不然出错
        foreach ($db as $k => $v) {//循环提取要导出的数据.一维是索引数组,二维是关联数据
            foreach ($v as $kn => $vn) {
                $ls_csv.=$vn.',';
            }
            $ls_csv=preg_replace('/,$/', "\r\n", $ls_csv);//把最后一个逗号换成换行符号
        }
        $encode = mb_detect_encoding($ls_csv, array("ASCII",'UTF-8',"GB2312","GBK",'BIG5'));//检测当前字符集
    }
    $csv.=iconv($encode, 'GB2312', $ls_csv);
    $this->export_csv($filename,$csv);
}

public function export_csv($filename,$data){   
        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:public');   
        echo $data; 
}
网友评论