欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php生成五位数邀请码

程序员文章站 2022-04-08 14:33:51
...
本篇文章给大家分享的内容是php生成五位数邀请码,有着一定的参考价值,有需要的朋友可以参考一下

model

 /**
     * 生成邀请码
     * @param $uid
     * @return string
     */
	public function initcode() {
        $code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
        $rand = $code[rand(0,25)]
            .strtoupper(dechex(date('m')))
            .date('d').substr(time(),-5)
            .substr(microtime(),2,5)
            .sprintf('%02d',rand(0,99));
        for(
            $a = md5( $rand, true ),
            $s = '0123456789ABCDEFGHIJKLMNOPQRSTUV',
            $d = '',
            $f = 0;
            $f < 5;
            $g = ord( $a[ $f ] ),
            $d .= $s[ ( $g ^ ord( $a[ $f + 8 ] ) ) - $g & 0x1F ],
            $f++
        );
        return $d;
    }

    /**
     * 是否重复
     */
    public function recode($code) {
        if ($this->where('code='.$code)->find()) {
            return false;
        }
        return true;
    }


action

/**
     * 我的邀请码
     * @author zhangfeng
     */
    public function mycode() {
        $model = M('Usercode');
        $uid = ($_GET['uid']);
        $code = $model->is_code($uid);
        $this->assign('code', $code);
        if (!$code) {
            $code = $this->getcode($model, $uid);
            $res = $model->savecode($uid, $code);
            if ($res) {
                $this->assign('code', $code);
            } else {
                $this->assign('code', '邀请码生成失败!,错误:'.$model->getError());
            }
        }
        $this->display();
    }

    /**
     * 递归函数获取绝对不重复邀请码
     * @author zhangfeng
     * @param $model
     * @param $uid
     * @return mixed
     */
    private function getcode($model, $uid) {
        $code = $model->initcode($uid);
        if ($model->recode($code)) {
            return $code;
        } else {
            while(true) {
                $this->getcode($model, $uid);
            }
        }
    }

相关推荐:

实例详解php生成.csv后缀文件表格的方法

PHP生成带logo图像二维码的两种方法

以上就是php生成五位数邀请码的详细内容,更多请关注其它相关文章!

相关标签: php 邀请 位数