이 글에서는 특정 참조 값이 있는 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('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 접미사 파일 테이블을 생성하는 방법
로고 이미지가 포함된 QR 코드를 생성하는 PHP의 두 가지 방법
위 내용은 PHP는 5자리 초대 코드를 생성합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!