• 随机数生成


    /**
    * @desc 生成随机邀请码
    * 规则:两位随机大写字母+4位随机数字;字母与数字,需排除:英文字母I(大写 i)、英文字母O(大写 o)、数字1、数字0 这4种情况;
    */
    function GetRandWithPhoneNew($mobile,$leng,$tablename,$prefiel,$count)
    {
    $code=$this->getCode(2,3).$this->getCode(4,1);
    //判断编号是否被占用
    $table_m = M($tablename);
    $rowcount = $table_m->where('invitation_code="' . $code . '"')->count();
    if ($rowcount > 0) {
    $count++;
    $code = $this->GetRandWithPhoneNew($mobile,$leng,$tablename,$prefiel,$count);
    }
    return $code;
    }
    /* 作用:取得随机字符串
    * 参数:
    1、(int)$length = 32 #随机字符长度
    2、(int)$mode = 0 #随机字符类型,
    0为大小写英文和数字,1为数字,2为小写字母,3为大写字母,
    4为大小写字母,5为大写字母和数字,6为小写字母和数字
    * 返回:取得的字符串
    */
    
    function getCode($length = 32, $mode = 0) {//获取随机验证码函数
    switch ($mode) {
    case '1':
    $str = '23456789';
    break;
    case '2':
    $str = 'abcdefghijklmnopqrstuvwxyz';
    break;
    case '3':
    $str = 'ABCDEFGHJKLMNPQRSTUVWXYZ';
    break;
    case '4':
    $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
    break;
    case '5':
    $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
    break;
    case '6':
    $str = 'abcdefghijklmnopqrstuvwxyz1234567890';
    break;
    default:
    $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890';
    break;
    }
    $checkstr = '';
    $len = strlen($str) - 1;
    for ($i = 0; $i < $length; $i++) {
    //$num=rand(0,$len);//产生一个0到$len之间的随机数
    $num = mt_rand(0, $len); //产生一个0到$len之间的随机数
    $checkstr.=$str[$num];
    }
    return $checkstr;
    }
  • 相关阅读:
    [CF724G]Xor-matic Number of the Graph
    [SOJ #537]不包含 [CF102129I]Incomparable Pairs(2019-8-6考试)
    [SOJ #538]好数 [CC]FAVNUM(2019-8-6考试)
    [洛谷P4052][JSOI2007]文本生成器
    [洛谷P3966][TJOI2013]单词
    [洛谷P5158]【模板】多项式快速插值
    [洛谷P3227][HNOI2013]切糕
    【bzoj】3477: [Usaco2014 Mar]Sabotage 01分数规划
    【SPOJ
    【以前的空间】系列
  • 原文地址:https://www.cnblogs.com/ws1992/p/9390432.html
Copyright © 2020-2023  润新知