首页  >  文章  >  后端开发  >  php生成五位数邀请码

php生成五位数邀请码

不言
不言原创
2018-04-13 14:30:203615浏览

本篇文章给大家分享的内容是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(&#39;code=&#39;.$code)->find()) {
            return false;
        }
        return true;
    }


action

/**
     * 我的邀请码
     * @author zhangfeng
     */
    public function mycode() {
        $model = M(&#39;Usercode&#39;);
        $uid = ($_GET[&#39;uid&#39;]);
        $code = $model->is_code($uid);
        $this->assign(&#39;code&#39;, $code);
        if (!$code) {
            $code = $this->getcode($model, $uid);
            $res = $model->savecode($uid, $code);
            if ($res) {
                $this->assign(&#39;code&#39;, $code);
            } else {
                $this->assign(&#39;code&#39;, &#39;邀请码生成失败!,错误:&#39;.$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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn