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

php實(shí)現(xiàn)批量上傳數(shù)據(jù)到數(shù)據(jù)庫(.csv格式)的案例

 更新時(shí)間:2017年06月18日 11:02:52   投稿:jingxian  
下面小編就為大家?guī)硪黄猵hp實(shí)現(xiàn)批量上傳數(shù)據(jù)到數(shù)據(jù)庫(.csv格式)的案例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

友情提示:上傳數(shù)據(jù)的文檔需要轉(zhuǎn)化為.csv格式的文檔

前端代碼:

<form name="importForm" action="import.php" method="POST" enctype="multipart/form-data"> 
<input type="hidden" value="import_goods" name="file"> 
  <table cellpadding="2" cellspacing="1" class="tb"> 
    <tbody> 
    <tr> 
      <td width="200">選擇批量上傳文檔:</td> 
      <td><input type="file" name="upfilename" id="upfilename" value=""></td> 
    </tr> 
    <tr> 
      <td colspan="2"> 
        <input type="submit" name="submit" value="提交" class="btn"> 
      </td> 
    </tr> 
    </tbody> 
  </table> 
</form> 

后端代碼:import.php文件(這里只粘貼主要代碼,具體實(shí)現(xiàn)方法需自己完成)

if(isset($_POST['submit'])){ 
      stripos(PHP_OS, "WIN") !== false ? setlocale(LC_ALL, '') : setlocale(LC_ALL,'zh_CN.GBK'); 
       
      $fext = substr($_FILES['upfilename']['name'], strrpos($_FILES['upfilename']['name'], '.') + 1); 
      if ($fext != 'csv') { 
        die('請(qǐng)上傳csv格式的文件',HTTP_REFERER); 
      } 
      $handle = @fopen($_FILES['upfilename']['tmp_name'], "rb"); 
   
      $i = 0; 
      $import_type = ''; 
      if ($handle) 
      { 
        while($line_data = fgetcsv($handle, 4096, ',')) 
        { 
          if ($i == 0) { 
            $import_type = trim($line_data[0]); 
            $i = 1; 
          } elseif (intval($line_data[0])) { 
            $line_list[] = $line_data; 
          } 
        } 
      } 
      //循環(huán)轉(zhuǎn)換數(shù)據(jù)格式 
      foreach ($line_list as $i=> $v) 
      { 
        foreach ($v as $j=> $value) 
        { 
          $line_list[$i][$j] = iconv('GBK', 'UTF-8//IGNORE',$line_list[$i][$j]); 
        } 
      }//編碼轉(zhuǎn)換 
       
      fclose($handle); 
 
      if(!empty($line_list)) 
      { 
        // 登記號(hào) 
        $sn = array(); 
        $top_catid = 0; 
        $name = ''; 
        $func_name = ''; 
        switch ($import_type) { 
          case 'patent'; 
          $top_catid = 5; 
          $name = '專利申請(qǐng)?zhí)?; 
          $func_name = 'deal_import_patent'; 
          break; 
          case 'trademark'; 
          $top_catid = 4; 
          $name = '商標(biāo)注冊(cè)號(hào)'; 
          $func_name = 'deal_import_trademark'; 
          break; 
          case 'copyright'; 
          $top_catid = 2185; 
          $name = '登記號(hào)'; 
          $func_name = 'deal_import_copyright'; 
          break; 
          default: 
            die('上傳文檔未明確指定知產(chǎn)類型!'); 
          break; 
        } 
        if ($import_type == 'patent') { 
          foreach($line_list as $lkey => $lval) { 
            $lval[2] = trim($lval[2]); 
            if ($lval[2] == '專利技術(shù)') { 
              // 技術(shù)專利 
              if(!empty($lval[1])) { 
                if(in_array($lval[1],$sn)) 
                { 
                  die('列表中序號(hào)為'.$lval[0].'的知產(chǎn)的'.$name.$lval[1].'與前面的出現(xiàn)重復(fù)!');//判斷是否有重復(fù)的數(shù)據(jù)(根據(jù)自己所需判斷) 
                } 
                $sn[] = trim($lval[1]); 
              } else { 
                die('列表中序號(hào)為'.$lval[0].'的知產(chǎn)的'.$name.'為空!'); 
              } 
            } else { 
              // 非技術(shù)專利 
              $line_list[$lkey][1] = ''; 
            } 
          } 
        } elseif ($import_type == 'trademark') { 
          foreach($line_list as $lkey => $lval) { 
            if(!empty($lval[1])) { 
              if(in_array($lval[1],$sn)) 
              { 
                die('列表中序號(hào)為'.$lval[0].'的知產(chǎn)的'.$name.'與前面的出現(xiàn)重復(fù)!'); 
              } 
              $sn[] = $lval[1]; 
            } else { 
              die('列表中序號(hào)為'.$lval[0].'的知產(chǎn)的'.$name.'為空!'); 
            } 
          } 
        } 
        if (!empty($sn)) { 
          $sql = 'SELECT serial_number FROM ' .$table_name. ' WHERE top_catid = '.$top_catid.' AND serial_number IN (\'' .implode("','", $sn). '\')'; 
          $result = $goods_db->query($sql); 
          $r = $goods_db->fetch_array(); 
          $exist = array(); 
          foreach ($r as $k=>$v){ 
            $exist[] = $v['serial_number']; 
          } 
           
          if (!empty($exist)) die($name.'為:'.implode(',',$exist).'的知產(chǎn)已存在');//數(shù)據(jù)庫中是否有相同的數(shù)據(jù)(根據(jù)自己所需判斷) 
        }     
        // 調(diào)用處理函數(shù) 
        self::$func_name($line_list);//此時(shí)$line_list即為你上傳文檔的數(shù)據(jù),數(shù)組格式,根據(jù)自己所需將數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫 
        die('批量導(dǎo)入完成!'); 
      } 
       
    } 

.csv文檔的格式為:

以上這篇php實(shí)現(xiàn)批量上傳數(shù)據(jù)到數(shù)據(jù)庫(.csv格式)的案例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Yii框架函數(shù)簡單用法分析

    Yii框架函數(shù)簡單用法分析

    這篇文章主要介紹了Yii框架函數(shù)簡單用法,結(jié)合實(shí)例形式分析了Yii框架函數(shù)基本用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-09-09
  • php利用imagemagick實(shí)現(xiàn)復(fù)古老照片效果實(shí)例

    php利用imagemagick實(shí)現(xiàn)復(fù)古老照片效果實(shí)例

    imagick是一個(gè)PHP的擴(kuò)展,用ImageMagick提供的API來進(jìn)行圖片的創(chuàng)建與修改,不過這些操作已經(jīng)包裝到擴(kuò)展imagick中去了,最終調(diào)用的是ImageMagick提供的API。這篇文章主要給大家介紹了php利用imagemagick實(shí)現(xiàn)復(fù)古老照片的效果實(shí)例,需要的朋友可以參考下。
    2017-02-02
  • ThinkPHP表單數(shù)據(jù)智能寫入create方法實(shí)例分析

    ThinkPHP表單數(shù)據(jù)智能寫入create方法實(shí)例分析

    這篇文章主要介紹了ThinkPHP表單數(shù)據(jù)智能寫入create方法,以實(shí)例形式較為詳細(xì)的分析了ThinkPHP中create只能寫入的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-09-09
  • php curl模擬post請(qǐng)求和提交多維數(shù)組的示例代碼

    php curl模擬post請(qǐng)求和提交多維數(shù)組的示例代碼

    這篇文章主要介紹了php curl模擬post請(qǐng)求和提交多維數(shù)組的示例代碼,需要的朋友可以參考下
    2015-11-11
  • Laravel使用Caching緩存數(shù)據(jù)減輕數(shù)據(jù)庫查詢壓力的方法

    Laravel使用Caching緩存數(shù)據(jù)減輕數(shù)據(jù)庫查詢壓力的方法

    這篇文章主要介紹了Laravel使用Caching緩存數(shù)據(jù)減輕數(shù)據(jù)庫查詢壓力的方法,以項(xiàng)目實(shí)例形式較為詳細(xì)的分析了Laravel框架使用Caching緩存的原理與具體實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-03-03
  • php數(shù)組去重實(shí)例及分析

    php數(shù)組去重實(shí)例及分析

    這篇文章主要是介紹了php數(shù)組去重實(shí)例及分析。需要的朋友可以過來參考下,希望對(duì)大家有所幫助
    2013-11-11
  • PHP可變變量學(xué)習(xí)小結(jié)

    PHP可變變量學(xué)習(xí)小結(jié)

    可變變量,就是一個(gè)變量的變量名可以動(dòng)態(tài)的設(shè)置和使用。語法形式是PHP的特殊語法,其他語言中少見,本文給大家分享php可變變量學(xué)習(xí)小結(jié),對(duì)php可變變量相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2015-11-11
  • PHP單文件和多文件上傳實(shí)例

    PHP單文件和多文件上傳實(shí)例

    本篇文章給大家詳細(xì)分析了PHP實(shí)現(xiàn)單文件上傳和多文件上傳的代碼以及問題解決方案,一起學(xué)習(xí)參考下。
    2017-12-12
  • ThinkPHP5.1+Ajax實(shí)現(xiàn)的無刷新分頁功能示例

    ThinkPHP5.1+Ajax實(shí)現(xiàn)的無刷新分頁功能示例

    這篇文章主要介紹了ThinkPHP5.1+Ajax實(shí)現(xiàn)的無刷新分頁功能,結(jié)合實(shí)例形式詳細(xì)分析了ThinkPHP5.1+Ajax無刷新分頁具體原理、前臺(tái)數(shù)據(jù)發(fā)送與后臺(tái)處理相關(guān)操作技巧,需要的朋友可以參考下
    2020-02-02
  • yii實(shí)現(xiàn)使用CUploadedFile上傳文件的方法

    yii實(shí)現(xiàn)使用CUploadedFile上傳文件的方法

    這篇文章主要介紹了yii實(shí)現(xiàn)使用CUploadedFile上傳文件的方法,結(jié)合具體的前端與后端處理代碼實(shí)例分析了CUploadedFile類的使用方法,需要的朋友可以參考下
    2015-12-12

最新評(píng)論