1 <meta http-equiv="content-type" content="charset=utf8"/>
 2 <?php
 3     //上传文件类型列表
 4     $uptypes = array(
 5         'image/jpg',
 6         'image/jpeg',
 7         'image/png',
 8         'image/pjpeg',
 9         'iamge/gif',
10         'image/bmp',
11         'image/x-png',
12     );
13
14     $max_file_size = 2000000;  //上传文件大小限制,单位为byte
15     $destination_folder = "test/";  //上传文件路径
16
17     //is_uploaded_file — 判断文件是否是通过 HTTP POST 上传的
18 /**
19 $_FILES数组内容如下:
20 $_FILES['myFile']['name']   客户端文件的原名称。
21 $_FILES['myFile']['type']   文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif"。
22 $_FILES['myFile']['size']   已上传文件的大小,单位为字节。
23 $_FILES['myFile']['tmp_name']   文件被上传后在服务端储存的临时文件名,一般是系统默认。可以在php.ini的upload_tmp_dir 指定,但用 putenv() 函数设置是不起作用的。
24 $_FILES['myFile']['error']   和该文件上传相关的错误代码。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的说明:(它们在PHP3.0以后成了常量)
25 UPLOAD_ERR_OK             值:0; 没有错误发生,文件上传成功。
26 UPLOAD_ERR_INI_SIZE      值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
27 UPLOAD_ERR_FORM_SIZE  值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
28 UPLOAD_ERR_PARTIAL          值:3; 文件只有部分被上传。
29 UPLOAD_ERR_NO_FILE          值:4; 没有文件被上传。    值:5; 上传文件大小为0.
30  */
31 if ($_SERVER['REQUEST_METHOD'] == 'POST') {
32     if (!is_uploaded_file($_FILES['upfile']['tmp_name'])) {
33         echo "<script>alert('图片不存在');</script>";
34         return false;
35     }
36     $file = $_FILES['upfile'];
37    // print_r($file);
38     $name = $file['name'];
39     $type = $file['type'];
40     $size = $file['size'];
41     $tmp_name = $file['tmp_name'];
42     $error = $file['error'];
43
44     //判断是否超过规定大小
45     if ($max_file_size < $size) {
46         echo "<script>alert('文件太大');</script>";
47         return false;
48     }
49
50     //检查文件类型,in_array($arr1. $arr2)检查$arr2里是否有$arr1的值
51     if (!in_array($type, $uptypes)) {
52         echo "<script>alert('文件类型不符合');</script>";
53         return false;
54     }
55
56     //判断文件存放目录是否存在,不存在则创建,mkdir新建目录
57     if (!file_exists($destination_folder)) {
58         mkdir($destination_folder);
59     }
60
61     //move_uploaded_file将上传的文件移动到新位置
62     if ($error == '0') {
63         move_uploaded_file($tmp_name,'test/'.$name);
64         echo "<script>alert('上传成功');</script>";
65     }
66 }
67 ?>
68 <form enctype="multipart/form-data" method="post" name="upload">
69     <input type="file" name="upfile"/>
70     <input type="submit" name="submit" value="上传"/><br>
71     允许上传的文件类型为:<?=implode(',',$uptypes) ?>
72 </form>

@1.php上传文件需要三个重要函数:
1.is_uploaded_file($file)判断上传的文件是否是http_post传递过来的,如果是,返回TRUE;

2.$_FILES:http上传文件变量,详见代码解释;

3.move_uploaded_file($filename,$destination):将$filename文件从服务器的临时存储位置转移到$destination目标位置;

@2.将中文转换为拼音的类

 1 function Pinyin($_String, $_Code='gb2312')
 2 {
 3     $_DataKey = "a|ai|an|ang|ao|ba|bai|ban|bang|bao|bei|ben|beng|bi|bian|biao|bie|bin|bing|bo|bu|ca|cai|can|cang|cao|ce|ceng|cha".
 4         "|chai|chan|chang|chao|che|chen|cheng|chi|chong|chou|chu|chuai|chuan|chuang|chui|chun|chuo|ci|cong|cou|cu|".
 5         "cuan|cui|cun|cuo|da|dai|dan|dang|dao|de|deng|di|dian|diao|die|ding|diu|dong|dou|du|duan|dui|dun|duo|e|en|er".
 6         "|fa|fan|fang|fei|fen|feng|fo|fou|fu|ga|gai|gan|gang|gao|ge|gei|gen|geng|gong|gou|gu|gua|guai|guan|guang|gui".
 7         "|gun|guo|ha|hai|han|hang|hao|he|hei|hen|heng|hong|hou|hu|hua|huai|huan|huang|hui|hun|huo|ji|jia|jian|jiang".
 8         "|jiao|jie|jin|jing|jiong|jiu|ju|juan|jue|jun|ka|kai|kan|kang|kao|ke|ken|keng|kong|kou|ku|kua|kuai|kuan|kuang".
 9         "|kui|kun|kuo|la|lai|lan|lang|lao|le|lei|leng|li|lia|lian|liang|liao|lie|lin|ling|liu|long|lou|lu|lv|luan|lue".
10         "|lun|luo|ma|mai|man|mang|mao|me|mei|men|meng|mi|mian|miao|mie|min|ming|miu|mo|mou|mu|na|nai|nan|nang|nao|ne".
11         "|nei|nen|neng|ni|nian|niang|niao|nie|nin|ning|niu|nong|nu|nv|nuan|nue|nuo|o|ou|pa|pai|pan|pang|pao|pei|pen".
12         "|peng|pi|pian|piao|pie|pin|ping|po|pu|qi|qia|qian|qiang|qiao|qie|qin|qing|qiong|qiu|qu|quan|que|qun|ran|rang".
13         "|rao|re|ren|reng|ri|rong|rou|ru|ruan|rui|run|ruo|sa|sai|san|sang|sao|se|sen|seng|sha|shai|shan|shang|shao|".
14         "she|shen|sheng|shi|shou|shu|shua|shuai|shuan|shuang|shui|shun|shuo|si|song|sou|su|suan|sui|sun|suo|ta|tai|".
15         "tan|tang|tao|te|teng|ti|tian|tiao|tie|ting|tong|tou|tu|tuan|tui|tun|tuo|wa|wai|wan|wang|wei|wen|weng|wo|wu".
16         "|xi|xia|xian|xiang|xiao|xie|xin|xing|xiong|xiu|xu|xuan|xue|xun|ya|yan|yang|yao|ye|yi|yin|ying|yo|yong|you".
17         "|yu|yuan|yue|yun|za|zai|zan|zang|zao|ze|zei|zen|zeng|zha|zhai|zhan|zhang|zhao|zhe|zhen|zheng|zhi|zhong|".
18         "zhou|zhu|zhua|zhuai|zhuan|zhuang|zhui|zhun|zhuo|zi|zong|zou|zu|zuan|zui|zun|zuo";
19     $_DataValue = "-20319|-20317|-20304|-20295|-20292|-20283|-20265|-20257|-20242|-20230|-20051|-20036|-20032|-20026|-20002|-19990".
20         "|-19986|-19982|-19976|-19805|-19784|-19775|-19774|-19763|-19756|-19751|-19746|-19741|-19739|-19728|-19725".
21         "|-19715|-19540|-19531|-19525|-19515|-19500|-19484|-19479|-19467|-19289|-19288|-19281|-19275|-19270|-19263".
22         "|-19261|-19249|-19243|-19242|-19238|-19235|-19227|-19224|-19218|-19212|-19038|-19023|-19018|-19006|-19003".
23         "|-18996|-18977|-18961|-18952|-18783|-18774|-18773|-18763|-18756|-18741|-18735|-18731|-18722|-18710|-18697".
24         "|-18696|-18526|-18518|-18501|-18490|-18478|-18463|-18448|-18447|-18446|-18239|-18237|-18231|-18220|-18211".
25         "|-18201|-18184|-18183|-18181|-18012|-17997|-17988|-17970|-17964|-17961|-17950|-17947|-17931|-17928|-17922".
26         "|-17759|-17752|-17733|-17730|-17721|-17703|-17701|-17697|-17692|-17683|-17676|-17496|-17487|-17482|-17468".
27         "|-17454|-17433|-17427|-17417|-17202|-17185|-16983|-16970|-16942|-16915|-16733|-16708|-16706|-16689|-16664".
28         "|-16657|-16647|-16474|-16470|-16465|-16459|-16452|-16448|-16433|-16429|-16427|-16423|-16419|-16412|-16407".
29         "|-16403|-16401|-16393|-16220|-16216|-16212|-16205|-16202|-16187|-16180|-16171|-16169|-16158|-16155|-15959".
30         "|-15958|-15944|-15933|-15920|-15915|-15903|-15889|-15878|-15707|-15701|-15681|-15667|-15661|-15659|-15652".
31         "|-15640|-15631|-15625|-15454|-15448|-15436|-15435|-15419|-15416|-15408|-15394|-15385|-15377|-15375|-15369".
32         "|-15363|-15362|-15183|-15180|-15165|-15158|-15153|-15150|-15149|-15144|-15143|-15141|-15140|-15139|-15128".
33         "|-15121|-15119|-15117|-15110|-15109|-14941|-14937|-14933|-14930|-14929|-14928|-14926|-14922|-14921|-14914".
34         "|-14908|-14902|-14894|-14889|-14882|-14873|-14871|-14857|-14678|-14674|-14670|-14668|-14663|-14654|-14645".
35         "|-14630|-14594|-14429|-14407|-14399|-14384|-14379|-14368|-14355|-14353|-14345|-14170|-14159|-14151|-14149".
36         "|-14145|-14140|-14137|-14135|-14125|-14123|-14122|-14112|-14109|-14099|-14097|-14094|-14092|-14090|-14087".
37         "|-14083|-13917|-13914|-13910|-13907|-13906|-13905|-13896|-13894|-13878|-13870|-13859|-13847|-13831|-13658".
38         "|-13611|-13601|-13406|-13404|-13400|-13398|-13395|-13391|-13387|-13383|-13367|-13359|-13356|-13343|-13340".
39         "|-13329|-13326|-13318|-13147|-13138|-13120|-13107|-13096|-13095|-13091|-13076|-13068|-13063|-13060|-12888".
40         "|-12875|-12871|-12860|-12858|-12852|-12849|-12838|-12831|-12829|-12812|-12802|-12607|-12597|-12594|-12585".
41         "|-12556|-12359|-12346|-12320|-12300|-12120|-12099|-12089|-12074|-12067|-12058|-12039|-11867|-11861|-11847".
42         "|-11831|-11798|-11781|-11604|-11589|-11536|-11358|-11340|-11339|-11324|-11303|-11097|-11077|-11067|-11055".
43         "|-11052|-11045|-11041|-11038|-11024|-11020|-11019|-11018|-11014|-10838|-10832|-10815|-10800|-10790|-10780".
44         "|-10764|-10587|-10544|-10533|-10519|-10331|-10329|-10328|-10322|-10315|-10309|-10307|-10296|-10281|-10274".
45         "|-10270|-10262|-10260|-10256|-10254";
46     $_TDataKey = explode('|', $_DataKey);
47     $_TDataValue = explode('|', $_DataValue);
48     $_Data = (PHP_VERSION>='5.0') ? array_combine($_TDataKey, $_TDataValue) : _Array_Combine($_TDataKey, $_TDataValue);
49     arsort($_Data);
50     reset($_Data);
51     if($_Code != 'gb2312') $_String = _U2_Utf8_Gb($_String);
52     $_Res = '';
53     for($i=0; $i<strlen($_String); $i++)
54     {
55         $_P = ord(substr($_String, $i, 1));
56         if($_P>160) { $_Q = ord(substr($_String, ++$i, 1)); $_P = $_P*256 + $_Q - 65536; }
57         $_Res .= _Pinyin($_P, $_Data);
58     }
59     return preg_replace("/[^a-z0-9]*/", '', $_Res);
60 }
61 function _Pinyin($_Num, $_Data)
62 {
63     if ($_Num>0 && $_Num<160 ) return chr($_Num);
64     elseif($_Num<-20319 || $_Num>-10247) return '';
65     else {
66         foreach($_Data as $k=>$v){ if($v<=$_Num) break; }
67         return $k;
68     }
69 }
70 function _U2_Utf8_Gb($_C)
71 {
72     $_String = '';
73     if($_C < 0x80) $_String .= $_C;
74     elseif($_C < 0x800)
75     {
76         $_String .= chr(0xC0 | $_C>>6);
77         $_String .= chr(0x80 | $_C & 0x3F);
78     }elseif($_C < 0x10000){
79         $_String .= chr(0xE0 | $_C>>12);
80         $_String .= chr(0x80 | $_C>>6 & 0x3F);
81         $_String .= chr(0x80 | $_C & 0x3F);
82     } elseif($_C < 0x200000) {
83         $_String .= chr(0xF0 | $_C>>18);
84         $_String .= chr(0x80 | $_C>>12 & 0x3F);
85         $_String .= chr(0x80 | $_C>>6 & 0x3F);
86         $_String .= chr(0x80 | $_C & 0x3F);
87     }
88     return iconv('UTF-8', 'GB2312', $_String);
89 }
90 function _Array_Combine($_Arr1, $_Arr2)
91 {
92     for($i=0; $i<count($_Arr1); $i++)
93         $_Res[$_Arr1[$i]] = $_Arr2[$i];
94     return $_Res;
95 }
96
97 echo "<br>".PinYin('我的最爱',2);

注意:不设置第二个参数则默认编码为gb2312;设置数值则为utf8;

@3.像百度一样输入字符则弹出提示

test.html

 1 <meta charset="utf8"/>
 2 <script type="text/javascript" src="jquery-2.1.1.js"></script>
 3 <link type="text/css" rel="stylesheet" href="test.css"/>
 4 <div id="search">
 5 <input type="text" name="k" class="k" />&nbsp;<input type="button" name="s" value="搜索" />
 6 </div>
 7 <div id="search_auto"></div>
 8 <script type="text/javascript">
 9     $('#search_auto').css({'width':$('#search input[name="k"]').width()+4});
10     $("#search input[name='k']").keyup(function(){
11         $.post(
12             'search.php',
13             {'value':$(this).val()},
14             function(data){
15                 if (data == '0') {
16                     $('#search_auto').html('').css('display', 'none');
17                 } else {
18                     $('#search_auto').html(data).css('display','block');
19                 }
20             }
21         );
22     });
23 </script>

需要引入jquery插件
search.php

 1 <?php
 2 $pdo = new PDO('mysql:host=localhost;dbname=regi', 'root', '900914');
 3 $pdo->query('set names utf8');
 4 $v = $_POST['value'];
 5 $result = $pdo->query("select * from test where (py like '%$v%' or testname like '%$v%') order by id desc limit 10");
 6 $ro = $result->fetchAll();
 7 if (empty($v)) {
 8     exit('0');
 9 }
10 if ($ro <= 0) {
11     exit('0');
12 }
13 echo "<ul style='list-style: none'>";
14 foreach ($ro as $k => $value) {
15     echo "<li><a href=''>".$value[testname].'</a></li>';
16 }
17 echo '</ul>';

test.css

 1 #search{font-size:12px;}
 2 #search .k{padding:2px 1px; width:320px;}
 3 #search_auto{border:1px solid #817FB2; position:absolute; display:none;margin:0 auto;padding:0 0 0 0;}
 4 #search_auto li{background:#FFF; text-align:left;}
 5 #search_auto li.cls{text-align:left;}
 6 #search_auto li a{display:block;cursor:pointer; color:#666;}
 7
 8
 9 A:link {
10     color: #000000;
11     TEXT-DECORATION: none
12 }
13 A:visited {
14     COLOR: #000000;
15     TEXT-DECORATION: none
16 }
17 A:hover {
18     COLOR: #ff7f24;
19     text-decoration: underline;
20 }
21 A:active {
22     COLOR: #ff7f24;
23     text-decoration: underline;
24 }

mysql代码

 1 Create database
 2
 3 create database regi;
 4
 5
 6 Create Table
 7
 8 CREATE TABLE `test` (
 9   `id` int(11) NOT NULL AUTO_INCREMENT,
10   `testname` varchar(255) NOT NULL,
11   `py` varchar(255) NOT NULL,
12   PRIMARY KEY (`id`)
13 ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8

@4.php上传文件+(中文转换为拼音的类)+ 输入字符提示信息+根据头部信息给出相对应得二维码扫描

1 $agent = strtolower($_SERVER['HTTP_USER_AGENT ']);      //获取设备信息
2 $type = 'other';
3 if (strpos($agent, 'iphone') || strpos($agent, 'ipad')) {
4     $type = 'ios';
5 } elseif (strpos($agent, 'android')) {
6     $type = 'android';
7 }// 根据设备的类型返回相对应的二维码包

转载于:https://www.cnblogs.com/eyeSpace/p/3819466.html

php上传文件+(中文转换为拼音的类)+ 输入字符提示信息+根据头部信息给出相对应得二维码扫描...相关推荐

  1. 中文转换为拼音工具类(很全)

    中文转换为拼音工具类(很全) 1.所需的jar包 2.工具类(可以直接拿去用) 1.所需的jar包 <!--获取汉字的拼音--><dependency><groupId& ...

  2. uniapp中qrcode生成二维码后传的参数不见了_二维码扫描登录,你必须知道的 3 件事...

    作者 | 互联网平头哥 本文经授权转载自互联网平头哥(ID:it_pingtouge) 扫二维码登录现在比较常见,比如微信.支付宝等 PC 端登录,并且好像每款 APP 都支持扫码登录,不搞个扫码登录 ...

  3. 移动式无线蓝牙RFID+二维码扫描一体机|读卡器HX-R58C-B在安卓与苹果手机上如何操作?

    移动式无线蓝牙RFID+二维码扫描一体机|读卡器HX-R58C-B是一款基于条码识别.RFID无线射频识别技术并结合蓝牙通讯的一款支持一维码/二维码/13.56M/125Khz非接触式射频卡专用读卡器 ...

  4. android利用zbar二维码扫描-(解决中文乱码及扫描区域定义)

    写在最前(这是对上一篇博文的问题做的更新[android利用zbar二维码扫描]) project下载   zbarLib编译project  project下载0积分 bug 在2.3的系统中Hol ...

  5. [转载]android利用zbar二维码扫描-(解决中文乱码及扫描区域定义)

    写在最前(这是对上一篇博文的问题做的更新[android利用zbar二维码扫描]) 前天早上登陆CSDN时候一条消息:一网友提出了两点疑惑 扫描框目前只是做的假象,是全屏的图片进行解析 中文乱码现象 ...

  6. 二维码扫描模组是如何应用于PDA数据采集器上的呢?

    PDA采集器,对于很多从事快递物流行业的人来说并不陌生,它用于条码识别,而它的识别离不开一个小小的"二维码扫描模组".很多基于条码类自动识别产品研发应用都离不开它的存在.正是因为扫 ...

  7. iOS 7原生二维码扫描中文gbk编码乱码的解决

    有的二维码生成的含有中文的数据编码是GBK编码,如百度二维码生成器,使用系统原生二维码扫描就会出现乱码,于是开始网上查阅,该试的方法都尝试过了,终于功夫不负有心人,问题得到了解决,先上代码 NSStr ...

  8. SpringBoot生成二维码 扫描并可下载文件

    生成二维码 扫描并可下载文件 pom.xml 依赖 application.yaml Controller ImageBuilderUtils 工具类 适当根据自己的业务需求变通,然后就能轻松使用了, ...

  9. python 中文姓名库,Python Requests库上传文件中文文件名处理方法是什么

    使用Python Requests库,提交POST请求上传文件,不支持中文文件名? 使用Python Requests库,向微信服务器上传媒体问题. 当使用英文文件名称,上传时,一切OK. 当下面代码 ...

  10. 如何生成二维码图片(添加中文标识),并保存到指定的图片静态服务地址,解决二维码汉字不存在得问题。

    在开发过程中会有遇到链接转成二维码的需求,明确了链接的拼接内容之后,我们就可以着手写二维码的生成了 导入生成二维码需要的依赖, <dependency><groupId>com ...

最新文章

  1. 本人常用的一些编码小Tips(虽然不多,但很好用)
  2. Redis源代码分析-内存数据结构intset
  3. python大牛自学心得_自学Python编程的第十天(希望有IT大牛看见的指点小弟我,万分感谢)---------来自苦逼的转行人...
  4. cacti+nagios 整合遇到的问题
  5. java 线程 插件_我的第一个Chrome插件:天气预报应用
  6. 无向图的深度优先遍历非递归_图算法总结
  7. redhat 中安装rpm包时遇到异常 “error: Failed dependencies:xinetd is needed by .”
  8. etymon word flower bee apiary forget out~1
  9. 北京航空航天大学计算机考研信息汇总
  10. Vue学习---插槽篇
  11. 善用 Google 的 手气不错 I'm feeling lucky 搜索
  12. fromkeys()
  13. 7-113 用switch语句编程百分制成绩转换为五分制成绩
  14. 美国签证和加拿大签证申请及自驾游攻略合辑
  15. redis热key监控
  16. 【算法•日更•第十二期】信息奥赛一本通1585:【例 1】Amount of Degrees题解
  17. Large Scale Machine Learning--An Engineering Perspective--0. 引言
  18. wpf 窗口最大化,最小化,关闭,拖动,双击放大缩小窗口基本事件
  19. Haskell与Python中的一些概念,若有所悟
  20. 遗传算法配送路径优化java_基于遗传算法的配送中心路径优化问题分析

热门文章

  1. python 通过ftplib 实现上传下载
  2. AI为移动医疗APP加码,智能提醒你:该吃药了!
  3. java中的Map每次只能put一次,写段增强的put,可以一次put很多次
  4. 重零开始学前端-基础(1) 什么是变量
  5. 01.ZooKeeper安装和介绍
  6. JQuery访问json、js等文件
  7. 简单网络传递加密数据
  8. [环境]搭建Node+NPM+Grunt+Ruby开发环境
  9. 记住不要把Bitmap往List等集合放
  10. Luogu4438[HNOI/AHOI2018] 道路