请稍侯

php 导出CSV函数 支持繁体

29 June 2016
更多

使用demo

    $tempArray = array(
        0=> array('name' => '姓名0'),
        1=> array('name' => '姓名1'),
        2=> array('name' => '姓名2'),
    );
    $nameArray = array('name' => '名字');
    
    csv($nameArray,$tempArray,'预登记资料表');

php 导出CSV函数 支持繁体

    /**
    * 导出 CSV 通用模块
    * @access public
    * @param  array  $nameArr 要 array('导出的表中的字段'=>'中文命名','导出的表中的字段'=>'中文命名')
    * @return array  $sqlArr  数据库的查出的数据
    * @return string $name    导出CSV 时的命名
   */
    function csv($nameArr="",$sqlArr="",$name=""){
         foreach ($nameArr as $key => $value) {
           iconv('utf-8','gbk',$value); //转为中文
           $str[]= $value;
         }
         $str = implode(',', $str);
         $str .= "\n"; //用引文逗号分开  
         foreach ($sqlArr as $key => $value) {
             $array = array_change_key_case($value,CASE_LOWER);
             $chanJi = array_diff_key($array,$nameArr);
             $jiaoji[] = array_diff_key($array,$chanJi);
         } 
         $jiaoji = array_values($jiaoji);
         foreach ($jiaoji as $key => $value) {
           $arrValues[] = implode(',', $value);
         }
         $string = implode("\n", $arrValues);
         $str .= $string;
         $str = iconv('utf-8','gbk//TRANSLIT',$str); //转为中文           
         /*去除特殊符号*/
         $regex = "/\/|\~|\!|\|\#|\\$|\%|\^|\&|\*|\(|\)|\_|\+|\{|\}|\<|\>|\?|\[|\]|\|\.|\/|\;|\'|\`|\=|\\\|\|/";
         $str = preg_replace($regex,"",$str);
         $filename = "$name".date('YmdHis').'.csv'; //设置文件名
         $data = $str;
         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;  
    }