該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
} /** 設定匯出的檔名
* @param string $filename 匯出的檔名
*/ public function setexportname($filename)
} /** 設定分隔符
* @param string $separator 分隔符
*/ public function setseparator($separator)
} /** 設定定界符
* @param string $delimiter 定界符
*/ public function setdelimiter($delimiter)
} /** 匯出csv */
public function export()
// 計算匯出總批次
$pagecount = $this->getpagecount();
// 獲取匯出的列名
$fields = $this->getexportfields();
// 設定匯出檔案header
$this->setheader();
// 迴圈匯出
for($i=0; $iformatcsv($fields);
} // 設定偏移值
$offset = $i*$this->pagesize;
// 獲取每頁資料
$data = $this->getexportdata($offset, $this->pagesize);
// 將每頁資料轉換為csv格式
if($data)
} // 匯出資料
echo $exportdata;
} }
/** 計算總批次 */
private function getpagecount()
/** 設定匯出檔案header */
private function setheader()elseif(preg_match("/firefox/", $ua))else
ob_end_flush();
ob_implicit_flush(true);
} /** 格式化為csv格式資料
* @param array $data 要轉換為csv格式的陣列
*/ private function formatcsv($data=array())
/** 轉義字串
* @param string $str
* @return string
*/ private function escape($str)
} // class end
?>
demo示例程式如下:
<?php // exportcsv abstract class
require "exportcsv.class.php";
// 定義繼承類
class myexport extends exportcsv
/** 返回匯出的列名
* @return array
*/ protected function getexportfields()
/* 返回每批次的記錄
* @param int $offset 偏移量
* @param int $limit 獲取的記錄條數
* @return array
*/ protected function getexportdata($offset, $limit) }
// 匯出
$obj = new myexport();
$obj->setpagesize(1);
$obj->setexportname('myexport.csv');
$obj->setseparator(',');
$obj->setdelimiter('"');
$obj->export();
?>
www.cppcns.com
完整例項**點選此處本站**。
本文標題: php匯出csv抽象類例項
本文位址:
PHP抽象類 無法例項化
類前加 abstract,此類就成為抽象類,無法例項化.舉例 春秋戰國時期,燕零七 飛行器專家,能工巧匠.他寫了乙份圖紙 飛行器製造術 飛行器秘製圖譜 他的孫子問 發動機怎麼造呢?燕零七眼望夕陽 我是造不出來,但我相信後代有人造出來 燕零七的構想,當時的科技造不出來,即這個類只能在圖紙化,無法例項化...
php 陣列匯出csv php匯出CSV抽象類例項
這篇文章主要介紹了php匯出csv抽象類及其用法示例,可實現迴圈匯出功能,從而避免記憶體不足的問題,需要的朋友可以參考下 該php匯出csv抽象類,可根據總記錄數與每批次記錄數,計算總批次,迴圈匯出。避免記憶體不足的問題。exportcsv.class.php類檔案如下 php export csv...
php 匯出csv檔案例項
csv是以逗號間隔的文字檔案 開發中,匯出功能經常會用到,當資料量比較大的時候,發現csv格式的效率要比xls的效率要高一些,以yii先開發為例,優化 資料匯出 public filename 方法1 public function export item iconv utf 8 gbk val p...