程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> php的導出CSV抽象類

php的導出CSV抽象類

編輯:PHP綜合

php 導出CSV抽象類,根據總記錄數與每批次記錄數,計算總批次,循環導出。避免內存不足的問題。

ExportCSV.class.php

<?php  
/** php Export CSV abstract class,根據總記錄數與每批次記錄數,計算總批次,循環導出。 
*   Date:   2014-05-16 
*   Author: fdipzone 
*   Ver:    1.0 
* 
*   Func: 
*   public  setPageSize      設置每批次導出的記錄條數 
*   public  setExportName    設置導出的文件名 
*   public  setSeparator     設置分隔符 
*   public  setDelimiter     設置定界符 
*   public  export           執行導出 
*   private getPageCount     計算導出總批次 
*   private setHeader        設置導出文件header 
*   private formatCSV        將數據格式化為csv格式 
*   private escape           轉義字符串 
*   abstract getExportTotal  獲取總記錄條數,抽象方法,需繼承類實現 
*   abstract getExportFields 獲取導出的列名,抽象方法,需繼承類實現 
*   abstract getExportData   獲取每頁記錄,抽象方法,需繼承類實現 
*/
      
abstract class ExportCSV{ // class start  
      
    // 定義子類必須要實現的方法  
          
    /** 獲取總記錄條數 
    * @return int 
    */
    abstract protected function getExportTotal();  
      
    /** 獲取導出的列名 
    * @return Array 
    */
    abstract protected function getExportFields();  
      
    /** 獲取每批次數據 
    * @param  int $offset 偏移量 
    * @param  int $limit  獲取的記錄條數 
    * @return Array 
    */
    abstract protected function getExportData($offset, $limit);  
      
      
    // 定義類屬性  
    protected $total = 0;                 // 總記錄數  
    protected $pagesize = 500;            // 每批次導出的記錄數  
    protected $exportName = 'export.csv'; // 導出的文件名  
    protected $separator = ',';           // 設置分隔符  
    protected $delimiter = '"';           // 設置定界符  
      
      
    /** 設置每次導出的記錄條數 
    * @param int $pagesize 每次導出的記錄條數 
    */
    public function setPageSize($pagesize=0){  
        if(is_numeric($pagesize) && $pagesize>0){  
            $this->pagesize = $pagesize;  
        }  
    }  
      
      
    /** 設置導出的文件名 
    * @param String $filename 導出的文件名 
    */
    public function setExportName($filename){  
        if($filename!=''){  
            $this->exportName = $filename;  
        }  
    }  
      
      
    /** 設置分隔符 
    * @param String $separator 分隔符 
    */
    public function setSeparator($separator){  
        if($separator!=''){  
            $this->separator = $separator;  
        }  
    }  
      
      
    /** 設置定界符 
    * @param String $delimiter 定界符 
    */
    public function setDelimiter($delimiter){  
        if($delimiter!=''){  
            $this->delimiter = $delimiter;  
        }  
    }  
      
      
    /** 導出csv */
    public function export(){  
      
        // 獲取總記錄數  
        $this->total = $this->getExportTotal();  
      
        // 沒有記錄  
        if(!$this->total){  
            return false;  
        }  
      
        // 計算導出總批次  
        $pagecount = $this->getPageCount();  
      
        // 獲取導出的列名  
        $fields = $this->getExportFields();  
      
        // 設置導出文件header  
		// 查看本欄目
		
							
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved