zoukankan      html  css  js  c++  java
  • 生成随机码

    <?php
    
    /*
    补位函数,使用方法:DispRepair('getstr',repaircode_length,'fillstr','type')
    功能:补齐字符串长度
    $gstr:原字符串
    $newlen:新字符串长度
    $fill:补位字符集,不能出现唯一标识中可能出现的字符
    type:类型,1为前补,其他值为后补
    */
    function DispRepair($gstr,$disrepairlen,$fillstr,$type) {
        $length = $disrepairlen - strlen($gstr);//需要补齐的字符串长度
        if($length<1){
            return $gstr;
        }else{
            $newstr = "";//创建新字符串        //要补齐的字符串,每一位都随机一次
            for ( $i=0; $i < $length; $i++ ){ 
                $newstr .= $fillstr[mt_rand(0,strlen($fillstr)-1)];//组装新字符串
            }
            if ($type == 1) {
                $gstr = $newstr.$gstr;//将新字符串填充到原字符串前方
            } else {
                $gstr .= $newstr;//将新字符串填充到原字符串后方
            }
        }
        return $gstr;
    }
    /*
    *建码函数,使用方法:CreateCoupon ("id",code_length,repaircode_length)*功能:生成带唯一标识的伪随机码*$newid:int 唯一标识符*$newcodelen:int 第一段码值长度*$newdisrepairlen:int 第二段码值长度
    */
    function CreateCoupon ($newid,$newcodelen,$newdisrepairlen){
        $codelen = $newcodelen; 
        $id = $newid;
        $disrepairlen = $newdisrepairlen;    $charset0 = 'ABCDEFGHKMNPRSTUVWXYZ23456789';//第一段随机码字符集,数字1,0与字母I,l,O过于形似,字符集中排除了这些字符
        $charset = 'ABCDEFGHKMNPRSTUVWXYZ';//补齐码值的字符集,ID为10进制,字符集中不能出现数字[0-9],否则最终的字符串可能出现重复(尽管前半段与后半段同时重复的概率很低)
        $_len = strlen($charset0)-1;//字符集最大序号
        $coupon = "";//创建随机码变量
        //创建一个随机码,每一位都随机一次
        for ($i=0;$i<$codelen;$i++) {
            $coupon .= $charset0[mt_rand(0,$_len)];
        }
        $nid = DispRepair($id,$newdisrepairlen,$charset,"0");//调用补位函数补齐特征字符串,防止券码出现重复,非1为后补
        $coupon .= $nid;//组装成完整的随机码
        return $coupon;
    }
    echo CreateCoupon("155",9,9);
  • 相关阅读:
    eclipse改变默认的编码格式(UTF-8)
    Guava学习:Joiner和Splitter工具(二)
    Guava中的Joiner和Splitter工具演示
    GitHub查找开源项目技巧分享
    java1.8特性之多重排序简单示例
    jedis工具类:java操作redis数据库
    SQL优化建议(mysql)
    Moodle插件之Filters(过滤器)
    Moodle插件开发系列——XMLDB编辑器
    Moodle插件开发——Blocks(版块)
  • 原文地址:https://www.cnblogs.com/blts/p/14062215.html
Copyright © 2011-2022 走看看