php 文件上传精简代码

 更新时间:2016年11月25日 15:57  点击:1726

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Excel数据获取演示</title>
<meta name="Keywords" content="TODO" />
<meta name="Description" content="TODO"/>
</head>
<body>
    <div>
      <div>提交表单</div>
      <div>
        <form method="POST" action="www.111cn.net/Index/parse" enctype="multipart/form-data">
            <input type="file" name="excel" value="" />
            <input type="submit" name="submit" value="提交" />
        </form>
      </div>
    </div>
</body>
</html>

public function parse()
    {
       /**
        * $_FILES数组说明
        * array(n) {
        *   ["表单文件框名称"] => array(5) {
        *       ["name"]        => 提交文件名称
        *       ["type"]        => 提交文件类型 Excel为"application/vnd.ms-excel"
        *       ["tmp_name"]    => 临时文件名称
        *       ["error"]       => 错误(0成功1文件太大超过upload_max_filesize2文件太大超过MAX_FILE3上传不完整4没有上传文件)
        *       ["size"]        => 文件大小(单位:KB)
        *   }
        * }
        */
        $return=array(0,'');
        /**
         * 判断是否提交
         * is_uploaded_file(文件名称)用于确定指定的文件是否使用POST方法上传,防止非法提交,通常和move_upload_file一起使用保存上传文件到指定的路径
         */
        if(!isset($_FILES) || !is_uploaded_file($_FILES['excel']['tmp_name']))
        {
            $return=array(1,'提交不合法');
        }
        //处理
        if(0 == $return[0])
        {
            import('@.Util.ExcelParser');
            $excel=new ExcelParser($_FILES['excel']['tmp_name']);
            $return=$excel->main();
        }
        //输出处理
        print_r($return);
?>

class ExcelParser
{
    private $_data=array(0,'');
    private $_excel_handle;
    private $_excel=array();
    /**
     * 构造函数
     * @param <string> $filename 上传文件临时文件名称
     */
    public function __construct($filename)
    {
        /**
         * 引入excelparser类
         * 普通方法为
         * requires 路径.'excelparser.php';
         */
        import('@.Util.PHPExcelParser.excelparser','','.php');
        $this->_excel_handle=new ExcelFileParser();
        //错误获取
        $this->checkErrors($filename);
    }
    /**
     * 错误校验
     */
    private function checkErrors($filename)
    {
        /**
         * 方法一
         */
        $error_code=$this->_excel_handle->ParseFromFile($filename);
        /**
         * 方法二
         * $file_handle = fopen($this->_filename,'rb');
         * $content = fread($file_handle,filesize($this->_filename));
         * fclose($file_handle);
         * $error_code = $this->_excel->ParseFromString($content);
         * unset($content,$file_handle);
         */
        switch($error_code)
        {
            case 0:
                //无错误不处理
                break;
            case 1:
                $this->_data=array(1,'文件读取错误(Linux注意读写权限)');
                break;
            case 2:
                $this->_data=array(1,'文件太小');
                break;
            case 3:
                $this->_data=array(1,'www.111cn.net读取Excel表头失败');
                break;
            case 4:
                $this->_data=array(1,'文件读取错误');
                break;
            case 5:
                $this->_data=array(1,'文件可能为空');
                break;
            case 6:
                $this->_data=array(1,'文件不完整');
                break;
            case 7:
                $this->_data=array(1,'读取数据错误');
                break;
            case 8:
                $this->_data=array(1,'版本错误');
                break;
        }
        unset($error_code);
    }
    /**
     * Excel信息获取
     */
    private function getExcelInfo()
    {
        if(1==$this->_data[0])return;
        /**
         * 获得sheet数量
         * 获得sheet单元对应的行和列
         */
        $this->_excel['sheet_number']=count($this->_excel_handle->worksheet['name']);
        for($i=0;$i<$this->_excel['sheet_number'];$i++)
        {
            /**
             * 行于列
             * 注意:从0开始计数
             */
            $row=$this->_excel_handle->worksheet['data'][$i]['max_row'];
            $col=$this->_excel_handle->worksheet['data'][$i]['max_col'];
            $this->_excel['row_number'][$i]=($row==NULL)?0:++$row;
            $this->_excel['col_number'][$i]=($col==NULL)?0:++$col;
            unset($row,$col);
        }
    }
    /**
     * 中文处理函数
     * @return <string>
     */
    private function uc2html($str)
    {
        $ret = '';
        for( $i=0; $i<strlen($str)/2; $i++ )
        {
            $charcode = ord($str[$i*2])+256*ord($str[$i*2+1]);
            $ret .= '&#'.$charcode.';';
        }
        return mb_convert_encoding($ret,'UTF-8','HTML-ENTITIES');
    }
    /**
     * Excel数据获取
     */
    private function getExcelData()
    {
        if(1==$this->_data[0])return;

        //修改标记
        $this->_data[0]=1;
        //获取数据
        for($i=0;$i<$this->_excel['sheet_number'];$i++)
        {
            /**
             * 对行循环
             */
            for($j=0;$j<$this->_excel['row_number'][$i];$j++)
            {
                /**
                 * 对列循环
                 */
                for($k=0;$k<$this->_excel['col_number'][$i];$k++)
                {
                    /**
                     * array(4) {
                     *   ["type"]   => 类型 [0字符类型1整数2浮点数3日期]
                     *   ["font"]   => 字体
                     *   ["data"]   => 数据
                     *   ...
                     * }
                     */
                    $data=$this->_excel_handle->worksheet['data'][$i]['cell'][$j][$k];
                    switch($data['type'])
                    {
                        case 0:
                            //字符类型
                            if($this->_excel_handle->sst['unicode'][$data['data']])
                            {
                                //中文处理
                                $data['data'] = $this->uc2html($this->_excel_handle->sst['data'][$data['data']]);
                            }
                            else
                            {
                                $data['data'] = $this->_excel_handle->sst['data'][$data['data']];
                            }
                            break;
                        case 1:
                            //整数
                            //TODO
                            break;
                        case 2:
                            //浮点数
                            //TODO
                            break;
                        case 3:
                            //日期
                            //TODO
                            break;
                    }
                    $this->_data[1][$i][$j][$k]=$data['data'];
                    unset($data);
                }
            }
        }
    }
    /**
     * 主函数
     * @return <array> array(标识符,内容s)
     */
    public function main()
    {
        //Excel信息获取
        $this->getExcelInfo();
        //Excel数据获取
        $this->getExcelData();
        return $this->_data;
    }
}

?>

// 创建数据库教程连接
mysql教程_connect('localhost','111cn.net','www.111cn.net');
mysql_select_db('www.111cn.net');//数据库选择
mysql_query('set names "gbk"');

//进度查询操作
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<script language="javascript教程">
 check111cnNet()
 {
  
  if( myfm.uid.value =='' )
  {
   alert('www.111cn.net提示你:用户名错误');
   return false;
  }
  if( ! myfm.pwd.value!='' && myfm.pwd.value == myfm.pwd1.value )
  {
  
   alert('www.111cn.net提示你:二次密码不正确');
   return false;
  }
   
 }
</script>
</head>

<body>
<form id="myfm" name="myfm" method="post" action="">
  <label>
  用户名
  <input type="text" name="uid" />
  <br>
  密码
  <input type="text" name="pwd" />
  <br>
  密码2
  <input type="text" name="pwd2" />
<br>
  </label>
  <label>
  <input type="submit" name="Submit" value="注册" onClick="return check111cnNet();" />
  </label>
</form>
</body>
</html>
<?php


if($_POST)
{
 $uid = $_POST['uid'];
 $pwd = $_POST['pwd'];
 $pwd1 = $_POST['pwd1'];
 if( empty( $uid ) ){exit();} 
 $sql = "Select * from user where uid ='$uid' limit 0,10";
 $query = mysql_query($sql ) or die("www.111cn.net提示你:查询出错了");
 
 if( mysql_num_rows( $query ) )
 {
  echo '用户己被注册';
 }
 else  
 {
  if(mysql_query("insert into user(uid,pwd) values('$uid','md5($pwd)')"))
  {
   echo 'www.111cn.net提示你:注册成功';
  }
  else
  {
   echo '注册失败';
  }
 }
}

/*
 数据表结构
 CREATE TABLE `111cnNet`.`user` (
 `id` INT( 8 ) NOT NULL AUTO_INCREMENT ,
 `uid` CHAR( 150 ) NULL ,
 `pwd` char(32) NULL ,
 PRIMARY KEY ( `id` )
 ) ENGINE
本教程只供学习用没进行安全处理,如用于商业用途出现任何问题与本站www.111cn.net无关
*/


// 纯本站原创转载必须注明来源否则必究责任 来源http://www.111cn.net/phper/php.html
?>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<script language="javascript教程">
 check111cnNet()
 {
  var keyword = myfm.keyword.value;
  if( keyword =='' )
  {
   alert('www.111cn.net提示你:请输入要查询的内容');
   return false;
  }
 }
</script>
</head>

<body>
<form id="myfm" name="myfm" method="post" action="">
  <label>
  输入查询关键字:
  <input type="text" name="keyword" />
  </label>
  <label>
  <input type="submit" name="Submit" value="提交" onClick="return check111cnNet();" />
  </label>
</form>
</body>
</html>
<?php
// 创建数据库教程连接
mysql教程_connect('localhost','111cn.net','www.111cn.net');
mysql_select_db('www.111cn.net');//数据库选择
mysql_query('set names "gbk"');

//进度查询操作

if($_POST)
{
 $keyword = $_POST['keyword'];
 $sql = "Select * from search where title like '%$keyword%' limit 0,10";
 $query = mysql_query($sql ) or die("www.111cn.net提示你:查询出错了");
 
 if( mysql_num_rows( $query ) )
 {
  while( $rs = mysql_fetch_array( $query ) )
  {
   echo $rs['title'];
  }
 }
 else  
 {
  echo '没有要找的内容';
 }
}

/*
 数据表结构
 CREATE TABLE `111cnNet`.`test` (
 `id` INT( 8 ) NOT NULL AUTO_INCREMENT ,
 `title` CHAR( 150 ) NULL ,
 `content` TEXT NULL ,
 PRIMARY KEY ( `id` )
 ) ENGINE
*/
//函数解析
mysql_connect  //数据库连接了有三个参数分别为 数据库服务器名称,用户名,密码
mysql_select_db//参数有二个,第二个可选 ,第一个数据库名称,第二个数据库连接$connwww.111cn.net
mysql_query('set names "gbk"'); //这一句比较重要,就是设置读取数据库内容的编码了,这句要设置与文档编辑一致,否则可能出现乱码。

mysql_query //数据查询,有二个参数,第一个必须,为sql查询语句。
mysql_num_rows //统计mysql_query查询记录多少条,返回为int型
mysql_fetch_array //读取当前记录集一条记录保存到数组。
$_POST
if else
while
// 纯本站原创转载必须注明来源否则必究责任 来源http://www.111cn.net/phper/php.html
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>

    <title>标记地图</title>

<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAc8Kc8QqRiIgpsK23Kp5gkBSH2hU1_Yr14uOHyNBnrSDSRu1cOxQAA7Zqsv6wfxH6g3z1AadUX7peSA" type="text/javascript教程" charset="utf-8"></script>

<!--改用自己的key-->

    <script type="text/javascript">
   function save(point,zoom){
    o = window.opener;
    
    if (point !=null ) {
      o.document.getElementById("layout_map").value='('+point.lng()+','+point.lat()+')';//经度
      //o.document.getElementById("map_y").value=point.lat();
      o.document.getElementById("layout_zoom").value=zoom;
      try {
       o.document.getElementById("emarked_img").src = "http://www.111cn.net/images/map/modify_note.gif" ; 
      }catch(e){}
     
     
    }
   
   }

    function initialize(lng_x) {

   
  if (GBrowserIsCompatible()) {
          var map = new GMap2(document.getElementById("map_canvas"));//设置map对象
   map.addControl(new GSmallMapControl());//google 控件
  try{  
   
   var owin;
   if(window.opener){
    owin = window.opener;
   }else{
    owin = window.parent;
   }
   
   map_x=owin.document.getElementById("layout_map").value;
   //map_y=owin.document.getElementById("layout_map").value;
   map_z=owin.document.getElementById("layout_zoom").value*1; 
   
   if( map_x == null || map_x =="" || map_z =='' )
   {
     map_x ='(103.974609375,33.284619968887675)';
     map_z =4;  
   }
   
   map_x =map_x.replace('(','');
   map_x =map_x.replace(')','');
   var temp =map_x.split(',');
   map_x = temp[0];
   map_y = temp[1];  
   
   //if(map_x !=null && map_x != "" && map_z>0 )
   //{
   thispoint=new GLatLng(map_y,map_x,true);
   map.setCenter(thispoint,map_z);
   map.addOverlay(new GMarker(thispoint));   
   //}
   //else
   //{
   // map.setCenter(new GLatLng(37.86455455760559,112.55081176757812), 10);
   // alert(map_y);
   //}
   
  }catch(e){
   //alert(map_z);
   map.setCenter(new GLatLng(37.86455455760559,112.55081176757812), 10);//设置中心点
  }
  //标记事件
  
       GEvent.addListener(map,"click", function(overlay,point) {
   map.clearOverlays();//清除原有的标记
   map.addOverlay(new GMarker(point));
   save(point,map.getZoom());
  });
      
       
      }
    }

    </script>
    <style>
 <!--
 body{ margin:0px; padding:0px;}
 #save{ line-height:1.8em; text-align:center; width:700px;}
 -->
    </style>
  </head>
  <body onload="initialize()" onunload="GUnload()">
    <div id="map_canvas" style="width: 900px; height: 550px"></div>
 <div id="save"><input value="保存标记" onclick="javascript:window.close();" type="button"/></div>
  </body>
</html>

[!--infotagslink--]

相关文章

  • php读取zip文件(删除文件,提取文件,增加文件)实例

    下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
  • Jupyter Notebook读取csv文件出现的问题及解决

    这篇文章主要介绍了JupyterNotebook读取csv文件出现的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2023-01-06
  • 不打开网页直接查看网站的源代码

      有一种方法,可以不打开网站而直接查看到这个网站的源代码..   这样可以有效地防止误入恶意网站...   在浏览器地址栏输入:   view-source:http://...2016-09-20
  • php 调用goolge地图代码

    <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
  • Photoshop打开PSD文件空白怎么解决

    有时我们接受或下载到的PSD文件打开是空白的,那么我们要如何来解决这个 问题了,下面一聚教程小伙伴就为各位介绍Photoshop打开PSD文件空白解决办法。 1、如我们打开...2016-09-14
  • C#操作本地文件及保存文件到数据库的基本方法总结

    C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
  • 解决python 使用openpyxl读写大文件的坑

    这篇文章主要介绍了解决python 使用openpyxl读写大文件的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-13
  • C#实现HTTP下载文件的方法

    这篇文章主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • SpringBoot实现excel文件生成和下载

    这篇文章主要为大家详细介绍了SpringBoot实现excel文件生成和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
  • JS基于Mootools实现的个性菜单效果代码

    本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
  • JS+CSS实现分类动态选择及移动功能效果代码

    本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
  • JS实现自定义简单网页软键盘效果代码

    本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
  • php 取除连续空格与换行代码

    php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
  • php无刷新利用iframe实现页面无刷新上传文件(1/2)

    利用form表单的target属性和iframe 一、上传文件的一个php教程方法。 该方法接受一个$file参数,该参数为从客户端获取的$_files变量,返回重新命名后的文件名,如果上传失...2016-11-25
  • Php文件上传类class.upload.php用法示例

    本文章来人大家介绍一个php文件上传类的使用方法,期望此实例对各位php入门者会有不小帮助哦。 简介 Class.upload.php是用于管理上传文件的php文件上传类, 它可以帮...2016-11-25
  • php简单用户登陆程序代码

    php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p>&nbsp;</p> <p>&nbsp;</p> <form name="form1...2016-11-25
  • php批量替换内容或指定目录下所有文件内容

    要替换字符串中的内容我们只要利用php相关函数,如strstr,str_replace,正则表达式了,那么我们要替换目录所有文件的内容就需要先遍历目录再打开文件再利用上面讲的函数替...2016-11-25
  • PHP实现清除wordpress里恶意代码

    公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23
  • PHP文件上传一些小收获

    又码了一个周末的代码,这次在做一些关于文件上传的东西。(PHP UPLOAD)小有收获项目是一个BT种子列表,用户有权限上传自己的种子,然后配合BT TRACK服务器把种子的信息写出来...2016-11-25
  • jQuery实现简单的文件上传进度条效果

    本文实例讲述了jQuery实现文件上传进度条效果的代码。分享给大家供大家参考。具体如下: 运行效果截图如下:具体代码如下:<!DOCTYPE html><html><head><meta charset="utf-8"><title>upload</title><link rel="stylesheet...2015-11-24