php實現導出爲csv表格文件

class Index
{    
    public function index()
    {	
        return view('index'); 

    }
    public function do(){
        $a = array(
            'a' => 1,
            'b' => 2,
            'c' => 3,
            'd' => 4,
            'e' => 5,
        );
        $b=['訂單號','名稱','表頭名1','表頭名2','表頭名3'];
        
         $c = array(
            '1' => $a,
            '2' => $a,
            '3' => $a,
            '4' => $a,
            '5' => $a,
        );

        $this->toCSV('用戶訂單明細表'.date('ymdhis').'.csv',$b,$c);
    }
    public function toCSV($filename, $tileArray=array(), $dataArray=array()){
        ini_set('memory_limit','512M');
        ini_set('max_execution_time',0); //限制程序執行時間 
     //   echo 'ini設置完成==>';
        ob_end_clean(); //清空(擦除)緩衝區並關閉輸出緩衝
      //  echo '清空(擦除)緩衝區並關閉輸出緩衝==》';
        ob_start();// 打開輸出控制緩衝
    //    echo '打開輸出控制緩衝成功==>';

        header("Content-Type: text/csv");//header()用於發送原始 HTTP 頭
      //  echo 'header告訴要csv格式==》';
        header("Content-Disposition:filename=".$filename); //filename指令告訴瀏覽器,附件下載的形式展示數據。
     //   echo 'filename指令告訴瀏覽器,附件下載的形式展示數據。==》';
     //    echo '<br/>';
        $fp=fopen('php://output','w'); //php://output:一個只寫的數據流,  fopen(,'w');將資源綁定到流中,w:寫入方式打開文件
     //   var_dump($fp);
      //  echo '以寫入方式打開一個只寫的數據流 成功==>';
      //  echo '<br/>';
       

        fwrite($fp, chr(0xEF).chr(0xBB).chr(0xBF));//轉碼 防止亂碼(比如微信暱稱(亂七八糟的))
    //    echo '將內容寫到數據流中... 成功==》';
    //     echo '<br/>';
      //  $raw_post_data = file_get_contents('php://input', 'r'); 
      //  echo $raw_post_data . "\n";exit;

        fputcsv($fp,$tileArray);// 該函數將行格式數據 化爲 CSV格式, 並寫入一個打開的文件。
  //      echo '行格式數據 化爲 CSV格式, 並寫入一個打開的文件 成功';
     //   fputcsv($fp,$dataArray);       

        $index = 0;
        foreach ($dataArray as $item) {
            $index++;
            fputcsv($fp,$item);
        }
        ob_flush();
        flush();
        ob_end_clean();
    }
    
}

結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章