zoukankan      html  css  js  c++  java
  • php上传文件+(中文转换为拼音的类)+ 输入字符提示信息+根据头部信息给出相对应得二维码扫描

     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 }
    // 根据设备的类型返回相对应的二维码包
  • 相关阅读:
    (转载)C++ string中find() ,rfind() 等函数 用法总结及示例
    UVA 230 Borrowers (STL 行读入的处理 重载小于号)
    UVA 12100 打印队列(STL deque)
    uva 12096 The SetStack Computer(STL set的各种库函数 交集 并集 插入迭代器)
    uva 1592 Database (STL)
    HDU 1087 Super Jumping! Jumping! Jumping!
    hdu 1176 免费馅饼
    HDU 1003 Max Sum
    转战HDU
    hust 1227 Join Together
  • 原文地址:https://www.cnblogs.com/eyeSpace/p/3819466.html
Copyright © 2011-2022 走看看