php实现批量上传数据到数据库(.csv格式)的案例


Posted in PHP onJune 18, 2017

友情提示:上传数据的文档需要转化为.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文件(这里只粘贴主要代码,具体实现方法需自己完成)

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('请上传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('批量导入完成!'); 
      } 
       
    }

.csv文档的格式为:

php实现批量上传数据到数据库(.csv格式)的案例

以上这篇php实现批量上传数据到数据库(.csv格式)的案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
1.PHP简介
Oct 09 PHP
Discuz! Passport 通行证整合
Mar 27 PHP
用PHP的超级变量$_POST获取HTML表单(HTML Form) 数据
May 07 PHP
simplehtmldom Doc api帮助文档
Mar 26 PHP
教你如何快捷的使用cmd访问mysql小技巧
May 26 PHP
PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
Mar 10 PHP
php筛选不存在的图片资源
Apr 28 PHP
PHP面向对象之后期静态绑定功能介绍
May 18 PHP
php利用gd库为图片添加水印
Nov 09 PHP
Yii CDBCriteria常用方法实例小结
Jan 19 PHP
PHP小白必须要知道的php基础知识(超实用)
Oct 10 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
Mar 24 PHP
PHP更安全的密码加密机制Bcrypt详解
Jun 18 #PHP
Laravel中log无法写入问题的解决
Jun 17 #PHP
php下载远程大文件(获取远程文件大小)的实例
Jun 17 #PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
Jun 17 #PHP
PHP 7安装调试工具Xdebug扩展的方法教程
Jun 17 #PHP
thinkphp查询,3.X 5.0方法(亲试可行)
Jun 17 #PHP
php 生成加密公钥加密私钥实例详解
Jun 16 #PHP
You might like
php5 non-thread-safe和thread-safe这两个版本的区别分析
2010/03/13 PHP
php基础学习之变量的使用
2011/06/09 PHP
php判断数组元素中是否存在某个字符串的方法
2014/06/14 PHP
Yii2框架制作RESTful风格的API快速入门教程
2016/11/08 PHP
[原创]php正则删除img标签的方法示例
2017/05/27 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
详解Yaf框架PHPUnit集成测试方法
2017/12/27 PHP
laravel 5.4 + vue + vux + element的环境搭配过程介绍
2018/04/26 PHP
打造个性化的功能强大的Jquery虚拟键盘(VirtualKeyboard)
2014/10/11 Javascript
jquery京东商城双11焦点图多图广告特效代码分享
2015/09/06 Javascript
基于Jquery代码实现手风琴菜单
2015/11/19 Javascript
JS实现浏览器打印、打印预览示例
2017/02/28 Javascript
详解nodejs模板引擎制作
2017/06/14 NodeJs
原生js实现简单的链式操作
2017/07/04 Javascript
React如何将组件渲染到指定DOM节点详解
2017/09/08 Javascript
详解Vue组件之作用域插槽
2018/11/22 Javascript
JavaScript实现省份城市的三级联动
2020/02/11 Javascript
javascript贪吃蛇游戏设计与实现
2020/09/17 Javascript
[01:13:08]2018DOTA2亚洲邀请赛4.6 淘汰赛 mineski vs LGD 第二场
2018/04/10 DOTA
python中from module import * 的一个坑
2014/07/20 Python
Python中pow()和math.pow()函数用法示例
2018/02/11 Python
Pandas标记删除重复记录的方法
2018/04/08 Python
详解Python_shutil模块
2019/03/15 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
2019/07/23 Python
pyqt5、qtdesigner安装和环境设置教程
2019/09/25 Python
Python tkinter模版代码实例
2020/02/05 Python
Jupyter notebook设置背景主题,字体大小及自动补全代码的操作
2020/04/13 Python
英国网上自行车商店:Tredz Bikes
2019/10/29 全球购物
广州迈达威.net面试题目
2012/03/10 面试题
毕业生自我推荐
2013/11/04 职场文书
聚美优品广告词改编
2014/03/14 职场文书
反邪教警示教育方案
2014/05/13 职场文书
趣味运动会广播稿
2014/09/13 职场文书
PHP实现考试倒计时功能代码
2021/04/16 PHP
Python 中的单分派泛函数你真的了解吗
2021/06/22 Python
python脚本框架webpy的url映射详解
2021/11/20 Python