欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP實(shí)現(xiàn)CSV文件的導(dǎo)入和導(dǎo)出類

 更新時(shí)間:2015年03月24日 12:31:42   作者:ishare  
這篇文章主要介紹了PHP實(shí)現(xiàn)CSV文件的導(dǎo)入和導(dǎo)出類,實(shí)例分析了php針對(duì)csv文件的操作技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了PHP實(shí)現(xiàn)CSV文件的導(dǎo)入和導(dǎo)出類。分享給大家供大家參考。具體如下:

<?php
/**
 * CSV 文件處理類
 */
class Csv{
  public $csv_array; //csv數(shù)組數(shù)據(jù)
  public $csv_str; //csv文件數(shù)據(jù)
  public function __construct($param_arr, $column){
    $this->csv_array = $param_arr;
    $this->path = $path;
    $this->column = $column;
  }
  /**
   * 導(dǎo)出
   * */
  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']);
    //組裝數(shù)據(jù)
    foreach($param_arr as $k=>$v){
      foreach($v as $k1=>$v1){
        $export_str .= implode(',',$v1)."n";
      }
    }
    //將$export_str導(dǎo)出
    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;
  }
  /**
   * 導(dǎo)入
   * */
  public function import($path,$column = 3){
    $flag = flase;
    $code = 0;
    $msg = '未處理';
    $filesize = 1; //1MB
    $maxsize = $filesize * 1024 * 1024;
    $max_column = 1000;
 
    //檢測(cè)文件是否存在
    if($flag === flase){
      if(!file_exists($path)){
        $msg = '文件不存在';
        $flag = true;
      }
    }
    //檢測(cè)文件格式
    if($flag === flase){
      $ext = preg_replace("/.*.([^.]+)/","$1",$path);
      if($ext != 'csv'){
        $msg = '只能導(dǎo)入CSV格式文件';
        $flag = true;
      }
    }
    //檢測(cè)文件大小
    if($flag === flase){
      if(filesize($path)>$maxsize){
        $msg = '導(dǎo)入的文件不得超過(guò)'.$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 = '文件不符合規(guī)格真實(shí)有:'.$num.'列數(shù)據(jù)';
          $flag = true;
          break;
        }
        if($flag === flase){
          for($i=0;$i<3;$i++){
            if($row == 0){
              break;
            }
            //組建數(shù)據(jù)
            $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 Settings\Administrator\Temp\txxx.csv';
$import_arr = $csv->import($path,3);
var_dump($import_arr);
?>

希望本文所述對(duì)大家的php程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • PHP的異常處理類Exception的使用及說(shuō)明

    PHP的異常處理類Exception的使用及說(shuō)明

    異常處理的基本思想是代碼在try代碼被調(diào)用執(zhí)行。如果try碼塊出現(xiàn)錯(cuò)誤,我們可以執(zhí)行一個(gè)拋出異常的處理
    2012-06-06
  • php封裝的連接Mysql類及用法分析

    php封裝的連接Mysql類及用法分析

    這篇文章主要介紹了php封裝的連接Mysql類及用法,基于php封裝了簡(jiǎn)單的MySQL數(shù)據(jù)庫(kù)的連接、查詢、遍歷等技巧,并附帶說(shuō)明了其具體用法,需要的朋友可以參考下
    2015-12-12
  • php中文亂碼問(wèn)題的終極解決方案匯總

    php中文亂碼問(wèn)題的終極解決方案匯總

    亂碼是我們?cè)陂_發(fā)可能經(jīng)常遇見,也是最讓人頭疼的一個(gè)問(wèn)題了,下面這篇文章主要介紹了在php開發(fā)中,可能遇見中文亂碼問(wèn)題的終極解決方案,文中介紹好幾個(gè)情況下的解決方法,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-08-08
  • PHP中shuffle數(shù)組值隨便排序函數(shù)用法

    PHP中shuffle數(shù)組值隨便排序函數(shù)用法

    這篇文章主要介紹了PHP中shuffle數(shù)組值隨便排序函數(shù)用法,可以比較簡(jiǎn)單的實(shí)現(xiàn)對(duì)數(shù)組的隨機(jī)排序,需要的朋友可以參考下
    2014-11-11
  • 深入php list()函數(shù)的詳解

    深入php list()函數(shù)的詳解

    本篇文章是對(duì)php中的list()函數(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • php堆排序?qū)崿F(xiàn)原理與應(yīng)用方法

    php堆排序?qū)崿F(xiàn)原理與應(yīng)用方法

    這篇文章主要介紹了php堆排序?qū)崿F(xiàn)原理與應(yīng)用方法,較為詳細(xì)的分析了堆排序的原理及使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-01-01
  • PHP獲取網(wǎng)卡地址的代碼

    PHP獲取網(wǎng)卡地址的代碼

    php獲取網(wǎng)卡地址的方法,用了exec函數(shù)
    2008-04-04
  • php ci框架中加載css和js文件失敗的原因及解決方法

    php ci框架中加載css和js文件失敗的原因及解決方法

    在將html頁(yè)面整合到ci框架里面的時(shí)候,加載css和js失敗。原因是ci框架是入口的框架
    2014-07-07
  • php+mysql實(shí)現(xiàn)的二級(jí)聯(lián)動(dòng)菜單效果詳解

    php+mysql實(shí)現(xiàn)的二級(jí)聯(lián)動(dòng)菜單效果詳解

    這篇文章主要介紹了php+mysql實(shí)現(xiàn)的二級(jí)聯(lián)動(dòng)菜單效果,涉及php操作mysql的連接、查詢結(jié)合javascript的DOM節(jié)點(diǎn)操作實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)菜單效果,末尾還附帶了mysql數(shù)據(jù)庫(kù)相應(yīng)的sql語(yǔ)句,需要的朋友可以參考下
    2016-05-05
  • php實(shí)現(xiàn)根據(jù)身份證獲取精準(zhǔn)年齡

    php實(shí)現(xiàn)根據(jù)身份證獲取精準(zhǔn)年齡

    這篇文章主要為大家詳細(xì)介紹了php實(shí)現(xiàn)根據(jù)身份證獲取精準(zhǔn)年齡,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02

最新評(píng)論