第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

邀請(qǐng)碼[php自我思路]

標(biāo)簽:
PHP

思路


  • 邀请码映射ID的唯一性
    根据邀请码就可以,解析出用户ID
  • 邀请码的离散性/随机性
    别人很难根据ID猜出邀请码

代码


class InviteCodeService
{
    // HxrhRD
    public static $p_char_lists = [
        ['H', 'h', 'x', 'r', 'R'],
        ['D', 'd', 'Z', 'n', 'N'],
        ['G', 'g', 'X', 'q', 'Q'],
        ['C', 'c', 'o', 'm', 'M'],
        ['W', 'w', 'V', 's', 'S'],
        ['F', 'f', 'y', 'p', 'P'],
        ['A', 'a', 'Y', 'k', 'K'],
        ['E', 'e', 'z', 'u', 'U'],
        ['J', 'j', 'v', 't', 'T'],
        ['B', 'b', 'O', 'l', 'L'],
    ];

    /**
     * 生成邀请码
     * @param $user_id
     * @param int $type 1网红端 2 用户端
     * @return string
     */
    public function generateCode($user_id, $type = 1)
    {
        // 暂定用户量处于千万级
        $code = '';
        $nums = $this->getNumberChars($user_id);
        $char_lists = $type === 1 ? self::$p_char_lists : self::$t_char_lists;
        foreach ($nums as $num) {
            $code .= $char_lists[$num][rand(0, 4)];
        }
        return $code;
    }

    /**
     * 根据邀请码获取id
     * @param $code
     * @param $type 1网红端 2用户端
     * @return int
     */
    public function getUserId($code, $type = 1)
    {
        $id = '';
        $chars = str_split($code);
        $char_lists = $type  === 1 ? self::$p_char_lists : self::$t_char_lists;
        foreach ($chars as $char) {
            foreach ($char_lists as $key => $char_list) {
                if (in_array($char, $char_list)) {
                    $id .= strval($key);
                }
            }
        }

        return intval($id);
    }

    /**
     * 固定6为邀请码
     * 将用户ID 变成6位数字 不足左边补0, 然后变成数字数组
     * @param $num
     * @return array
     */
    protected function getNumberChars($num)
    {
        $nums = str_split($num);
        if ($num < 10) {
            $nums = [0, 0, 0, 0, 0, $num];
        } elseif ($num < 100) {
            $nums = array_merge([0, 0, 0, 0], str_split(strval($num)));
        } elseif ($num < 1000) {
            $nums = array_merge([0, 0, 0], str_split(strval($num)));
        } elseif ($num < 10000) {
            $nums = array_merge([0, 0], str_split(strval($num)));
        } elseif ($num < 100000) {
            $nums = array_merge([0], str_split(strval($num)));
        }
        return $nums;
    }

}
點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消