CSV 文件處理PHP類

6e72 9年前發布 | 2K 次閱讀 PHP

<?php
/**

  • CSV 文件處理類 */ class Csv{ public $csv_array; //csv數組數據 public $csv_str; //csv文件數據

    public function __construct($param_arr, $column){

     $this->csv_array = $param_arr;
     $this->path = $path;
     $this->column = $column;
    

    }

    /**

    • 導出
    • */ public function export(){ if(empty($this->csv_array) || empty($this->column)){

       return false;
      

      } $param_arr = $this->csv_array; unset($this->csv_array); $export_str = implode(',',$param_arr['nav'])."n"; unset($param_arr['nav']); //組裝數據 foreach($param_arr as $k=>$v){

       foreach($v as $k1=>$v1){
           $export_str .= implode(',',$v1)."n";
       }
      

      } //將$export_str導出 header( "Cache-Control: public" ); header( "Pragma: public" ); header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:attachment;filename=txxx.csv"); header('Content-Type:APPLICATION/OCTET-STREAM'); ob_start();
      // $file_str= iconv("utf-8",'gbk',$export_str); ob_end_clean(); echo $export_str; }

      /**

    • 導入
    • / public function import($path,$column = 3){ $flag = flase; $code = 0; $msg = '未處理'; $filesize = 1; //1MB $maxsize = $filesize 1024 * 1024; $max_column = 1000;

      //檢測文件是否存在 if($flag === flase){

       if(!file_exists($path)){
           $msg = '文件不存在';
           $flag = true;
       }
      

      } //檢測文件格式 if($flag === flase){

       $ext = preg_replace("/.*.([^.]+)/","$1",$path);
       if($ext != 'csv'){
           $msg = '只能導入CSV格式文件';
           $flag = true;
       }
      

      }

      //檢測文件大小 if($flag === flase){

       if(filesize($path)>$maxsize){
           $msg = '導入的文件不得超過'.$maxsize.'B文件';
           $flag = true;
       }
      

      }

      //讀取文件 if($flag == flase){

       $row = 0;
       $handle = fopen($path,'r');
       $dataArray = array();
       while($data = fgetcsv($handle,$max_column,",")){
           $num = count($data);
           if($num < $column){
               $msg = '文件不符合規格真實有:'.$num.'列數據';
               $flag = true;
               break;
           }
      
           if($flag === flase){
               for($i=0;$i<3;$i++){
                   if($row == 0){
                       break;
                   }
                   //組建數據
                   $dataArray[$row][$i] = $data[$i];
               }
           }
           $row++;
       }
      

      }

      return $dataArray; } }

$param_arr = array( 'nav'=>array('用戶名','密碼','郵箱'), array(0=>array('xiaohai1','123456','xiaohai1@zhongsou.com'), 1=>array('xiaohai2','213456','xiaohai2@zhongsou.com'), 2=>array('xiaohai3','123456','xiaohai3@zhongsou.com') ));

$column = 3; $csv = new Csv($param_arr, $column); //$csv->export(); $path = 'C:Documents and SettingsAdministratorLocal SettingsTemptxxx.csv'; $import_arr = $csv->import($path,3); var_dump($import_arr);

?></pre>

 本文由用戶 6e72 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!