php实现批量上传数据到数据库(.csv格式)的案例
发布时间:2021-01-25 16:44:48  所属栏目:PHP教程  来源:网络整理 
            导读:友情提示:上传数据的文档需要转化为.csv格式的文档 前端代码: 后端代码:import.php文件 (这里只粘贴主要代码,具体实现方法需自己完成) $fext = substr($_FILES['upfilename']['name'],strrpos($_FILES['upfilename']['name'],'.') + 1); if ($fext !=
                
                
                
            | 友情提示:上传数据的文档需要转化为.csv格式的文档 前端代码: | 
后端代码:import.php文件
(这里只粘贴主要代码,具体实现方法需自己完成)  $fext = substr($_FILES['upfilename']['name'],strrpos($_FILES['upfilename']['name'],'.') + 1); 
  if ($fext != 'csv') { 
    die('请上传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; 
      } 
    } 
  } 
  //循环转换数据格式 
  foreach ($line_list as $i=> $v) 
  { 
    foreach ($v as $j=> $value) 
    { 
      $line_list[$i][$j] = iconv('GBK','UTF-8//IGNORE',$line_list[$i][$j]); 
    } 
  }//编码转换 
  fclose($handle); 
  if(!empty($line_list)) 
  { 
    // 登记号 
    $sn = array(); 
    $top_catid = 0; 
    $name = ''; 
    $func_name = ''; 
    switch ($import_type) { 
      case 'patent'; 
      $top_catid = 5; 
      $name = '专利申请号'; 
      $func_name = 'deal_import_patent'; 
      break; 
      case 'trademark'; 
      $top_catid = 4; 
      $name = '商标注册号'; 
      $func_name = 'deal_import_trademark'; 
      break; 
      case 'copyright'; 
      $top_catid = 2185; 
      $name = '登记号'; 
      $func_name = 'deal_import_copyright'; 
      break; 
      default: 
        die('上传文档未明确指定知产类型!'); 
      break; 
    } 
    if ($import_type == 'patent') { 
      foreach($line_list as $lkey => $lval) { 
        $lval[2] = trim($lval[2]); 
        if ($lval[2] == '专利技术') { 
          // 技术专利 
          if(!empty($lval[1])) { 
            if(in_array($lval[1],$sn)) 
            { 
              die('列表中序号为'.$lval[0].'的知产的'.$name.$lval[1].'与前面的出现重复!');//判断是否有重复的数据(根据自己所需判断) 
            } 
            $sn[] = trim($lval[1]); 
          } else { 
            die('列表中序号为'.$lval[0].'的知产的'.$name.'为空!'); 
          } 
        } else { 
          // 非技术专利 
          $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('列表中序号为'.$lval[0].'的知产的'.$name.'与前面的出现重复!'); 
          } 
          $sn[] = $lval[1]; 
        } else { 
          die('列表中序号为'.$lval[0].'的知产的'.$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).'的知产已存在');//数据库中是否有相同的数据(根据自己所需判断) 
    }     
    // 调用处理函数 
    self::$func_name($line_list);//此时$line_list即为你上传文档的数据,数组格式,根据自己所需将数据导入数据库 
    die('批量导入完成!'); 
  } 
} </pre>
.csv文档的格式为:
以上这篇php实现批量上传数据到数据库(.csv格式)的案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程之家。
(编辑:海洋资讯信息网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
站长推荐
            
        
