>  기사  >  백엔드 개발  >  PHP文件下载功能【真实项目】

PHP文件下载功能【真实项目】

WBOY
WBOY원래의
2016-06-20 12:34:27949검색

    有时候在项目中需要这样一种功能:把数据库里面的数据查询出来后,保存到csv文件里面。然后下载到客户端。开发思路:

  • 先把需要查询的数据从数据库里面查询出来;

  • 把需要查询出来的数据写入到csv文件里面;

  • 3.  保存到客户端(浏览器);

        模拟生产(项目)情况,代码清单如下:
        

    <?php  /**    * 实现下载csv文件    */     //模拟数据     $users = array(       array("username"=>"刘德华","age"=>56,"work"=>"演戏"),       array("username"=>"张学友","age"=>55,"work"=>"唱歌"),     );     $filename = date('Ymd').'.csv';     data2csv($users,$filename);    /**      *@param $data array 从数据库里面查询出来的数据      *@param $download_file_name string 客户端下载后的文件名      */    function data2csv($data,$download_file_name){        header("Content-type:text/csv");  //保存文件的类型        header("Content-Disposition:attachment;filename=".$download_file_name);//保存文件的名字        header('Cache-Control:must-revalidate,post-check=0,pre-check=0');        header('Expires:0');        header('Pragma:public');        ob_start();//开启ob缓存        echo "\xEF\xBB\xBF";        $df   = fopen("php://output",'w');        $head = array_keys(reset($data));        fputcsv($df,$head);//保存第一行        foreach($data as $row){          fputcsv($df,$row);        }        fclose($df);        echo ob_get_clean();    }


    성명:
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.