最近项目中要做礼包码生成,看了看网上的代码,可以使用php扩展unid

当然我这里并不是用的unid,而是使用的php自带的uniqid,人狠话不多。看代码

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
   $uniqid = uniqid('gm',true);
    $param_string = $_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR'].time().rand().$uniqid;
    $sha1 = sha1($param_string);
    for(
        $a = md5( $sha1, true ),
        $s = '0123456789abcdefghijklmnopqrstuvwxyz',
        $d = '',
        $f = 0;
        $f < 8;
        $g = ord( $a[ $f ] ),
        $d .= $s[ ( $g ^ ord( $a[ $f + 8 ] ) ) - $g & 0x1F ],
        $f++
    );
/**
 * 生成礼包接口 100W数据同时生成不重复
 * @return string
 */
function sp_gm_get_gift_code() {
    $uniqid = uniqid('gm',true);
    $param_string = $_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR'].time().rand().$uniqid;
    $sha1 = sha1($param_string);
    for(
        $a = md5( $sha1, true ),
        $s = '0123456789abcdefghijklmnopqrstuvwxyz',
        $d = '',
        $f = 0;
        $f < 8;
        $g = ord( $a[ $f ] ),
        $d .= $s[ ( $g ^ ord( $a[ $f + 8 ] ) ) - $g & 0x1F ],
        $f++
    );
    return $d;
}

  千万数据没测试,反正百万数据随便测试不会重复,8位兑换码也符合游戏或者其他场景中使用!

  有用就用,没用别喷

  效果如下图

 php 生成游戏兑换码(礼包)方法 随笔

 

 

 

function sp_gm_get_gift_code() {
$uniqid = uniqid('gm',true);
$param_string = $_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR'].$_SERVER['SERVER_SOFTWARE'].time().rand().$uniqid;
$sha1 = sha1($param_string);
for(
// $a = md5( $sha1, true ),//稍作修改
$a=$sha1,
$s = '0123456789abcdefghijklmnopqrstuvwxyz',
$d = '',
$f = 0;
$f < 12;//长度换成12位
$g = ord( $a[ $f ] ),
$d .= $s[ ( $g ^ ord( $a[ $f + 8 ] ) ) - $g & 0x1F ],
$f++
);
return $d;
}
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄