• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php导出CSV抽象类实例_PHP

php 搞代码 3年前 (2022-01-25) 12次浏览 已收录 0个评论

本文实例讲述了php导出CSV抽象类及其应用,分享给大家供大家参考。具体分析如下:

该php导出CSV抽象类,可根据总记录数与每批次记录数,计算总批次,循环导出。避免内存不足的问题。

ExportCSV.class.php类文件如下:

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     $this->setHeader();      // 循环导出     for($i=0; $iformatCSV($fields);       }        // 设置偏移值       $offset = $i*$this->pagesize;        // 获取每页数据       $data = $this->getExportData($offset, $this->pagesize);        // 将每页数据转换为csv格式       if($data){         foreach($data as $row){           $exportData .= $this->formatCSV($row);         }       }        // 导出数据       echo $exportData;     }   }    /** 计算总批次 */   private function getPageCount(){     $pagecount = (int)(($this->total-1)/$this->pagesize)+1;     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);     retu<span style="color:transparent">/本文来源gaodai#ma#com搞*!代#%^码网%</span><sub>搞代gaodaima码</sub>rn $this->delimiter.implode($this->delimiter.$this->separator.$this->delimiter, $data).$this->delimiter."\r\n";   }    /** 转义字符串   * @param String $str   * @return String   */   private function escape($str){     return str_replace($this->delimiter, $this->delimiter.$this->delimiter, $str);   } } // class end  ?> 


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php导出CSV抽象类实例_PHP
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址