ホームページ  >  記事  >  バックエンド開発  >  phpは5桁の招待コードを生成します

phpは5桁の招待コードを生成します

不言
不言オリジナル
2018-04-13 14:30:203665ブラウズ

この記事では、php によって生成された 5 桁の招待コードを共有します。必要な友達はそれを参照できます

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 でロゴ画像付きの QR コードを生成する 2 つの方法

以上がphpは5桁の招待コードを生成しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。