加入收藏 | 设为首页 | 会员中心 | 我要投稿 惠州站长网 (https://www.0752zz.com.cn/)- 办公协同、云通信、物联设备、操作系统、高性能计算!
当前位置: 首页 > 教程 > 正文

php导出CSV抽象类实例

发布时间:2022-06-22 08:59:11 所属栏目:教程 来源:互联网
导读:这篇文章主要介绍了php导出CSV抽象类及其用法示例,可实现循环导出功能,从而避免内存不足的问题,需要的朋友可以参考下。 本文实例讲述了php导出CSV抽象类及其应用,分享给大家供大家参考。具体分析如下: 该php导出CSV抽象类,可根据总记录数与每批次记录数,

      return $pagecount;  
    }  
     
    /** 设置导出文件header */
    private function setHeader(){  
      header('content-type:application/x-msexcel');  
     
      $ua = $_SERVER['HTTP_USER_AGENT'];  
     
      if(preg_match("/MSIE/", $ua)){  
        header('content-disposition:attachment; filename="'.rawurlencode($this->exportName).'"');  
      }elseif(preg_match("/Firefox/", $ua)){  
        header("content-disposition:attachment; filename*="utf8''".$this->exportName.'"');  
      }else{  
        header('content-disposition:attachment; filename="'.$this->exportName.'"');  
      }  
     
      ob_end_flush();  
      ob_implicit_flush(true);  
    }  
     
    /** 格式化为csv格式数据  
    * @param Array $data 要转换为csv格式的数组  
    */
    private function formatCSV($data=array()){  
      // 对数组每个元素进行转义  
      $data = array_map(array($this,'escape'), $data);  
      return $this->delimiter.implode($this->delimiter.$this->separator.$this->delimiter, $data).$this->delimiter."rn";  
    }  
     
    /** 转义字符串  
    * @param String $str  
    * @return String  
    */
    private function escape($str){  
      return str_replace($this->delimiter, $this->delimiter.$this->delimiter, $str);  
    } //www.phpfensi.com
  } // class end  
     
  ?>
  demo示例程序如下:
 
  <?php  
     
  // ExportCSV abstract class  
  require "ExportCSV.class.php";  
     
  // 定义继承类  
  class myexport extends ExportCSV{  
     
    // 要导出的数据,实际情况会从db读取  
    protected $data = array(  
      array('1','傲雪星枫"','男'),  
      array('2','傲雪星枫","','男'),  
      array('3','傲雪星枫","','男'),  
      array('4',"傲雪星枫""rn换行",'男'),  
      array('5','傲雪星枫,,','男'),  
      array('6','傲雪星枫"','男'),  
      array('7','傲雪星枫','男'),  
      array('8','傲雪星枫','男'),  
      array('9','傲雪星枫','男'),  
      array('10','傲雪星枫','男')  
    );  
     
    /* 返回总导出记录数  
    * @return int  
    */
    protected function getExportTotal(){  
      return count($this->data);  
    }  
     
    /** 返回导出的列名  
    * @return Array  
    */
    protected function getExportFields(){  
      $title = array('id','name','gender');  
      return $title;  
    }  
     
    /* 返回每批次的记录  
    * @param int $offset 偏移量  
    * @param int $limit 获取的记录条数  
    * @return Array  
    */
    protected function getExportData($offset, $limit){  
      return array_slice($this->data, $offset, $limit);  
    }  
  }  
     
  // 导出  
  $obj = new myexport();  
  $obj->setPageSize(1);  
  $obj->setExportName('myexport.csv');  
  $obj->setSeparator(',');  
  $obj->setDelimiter('"');  
  $obj->export();  
  ?>
 

(编辑:惠州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读