我是靠谱客的博主 端庄电话,最近开发中收集的这篇文章主要介绍随机生成6位会员号,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 /*
    * 根据请求生成会员号
    * 利用microtime()截取后六位生成会员号Number,时间戳后六位不会重复,
    * 如果存在则重新生成在查询,直到唯一为止,并写入user表与number表
    * */
   function createSingleNumber()
   {
       $token   =   I('token');
       $this->auth($token);
       try{
           $user_id = get_user_id(USER_ACCOUNT); //获取用户user_id
           $userData    =   D('User')->where(['id'=>$user_id])->find();
           if(!empty($userData['number']))
               throw new Exception('你的爱豆号为'.$userData['number'],1);

           //否则继续进行生成与验证
           $randNumber  = microtime();
           $userNumber  =   rand(11,99).substr($randNumber,-4);
           $check   =   $this->unique($userNumber);//计算是几连号,return 2 为2连号


           if($check >= 3)
               //检查是否3位相连,如果是,则生成任意随机数代替
               $userNumber  =   mt_rand(111111,999999);

           $doubleCheck  =  D('User')->where(['number'=>$userNumber])->find();
           if(!empty($doubleCheck))
               //再次生成爱豆号,直到不重复
               throw new Exception('再次请求生成',2018);
           exit(json_encode(['code'=>200,'data'=>$userNumber,'message'=>'ok']));
       }catch(Exception $e){
           $result['code'] = $e->getCode();
           $result['message'] = $e->getMessage();
           exit(json_encode($result));
       }

   }


    function unique($num){
       //使用正则检测连号数量
        preg_match_all("/(d)\1+/",$num,$match);
        rsort($match[0],SORT_NUMERIC);
        return strlen($match[0][0])?:1;
    }
复制代码

最后

以上就是端庄电话为你收集整理的随机生成6位会员号的全部内容,希望文章能够帮你解决随机生成6位会员号所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部