时间:2021-07-01 10:21:17 帮助过:48人阅读
- /**
- * 生成不重复的随机数字
- * @param int $start 需要生成的数字开始范围
- * @param int $end 结束范围
- * @param int $length 需要生成的随机数个数
- * @return number 生成的随机数
- */
- function getRandNumber($start=0,$end=9,$length=8){
- //初始化变量为0
- $connt = 0;
- //建一个新数组
- $temp = array();
- while($connt < $length){
- //在一定范围内随机生成一个数放入数组中
- $temp[] = mt_rand($start, $end);
- //$data = array_unique($temp);
- //去除数组中的重复值用了“翻翻法”,就是用array_flip()把数组的key和value交换两次。这种做法比用 array_unique() 快得多。
- $data = array_flip(array_flip($temp));
- //将数组的数量存入变量count中
- $connt = count($data);
- }
- //为数组赋予新的键名
- shuffle($data);
- //数组转字符串
- $str=implode(",", $data);
- //替换掉逗号
- $number=str_replace(',', '', $str);
- return $number;
- }
二、随机生成不重复的8位卡密
- function makeCardPassword() {
- $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 < 8;
- $g = ord( $a[ $f ] ),
- $d .= $s[ ( $g ^ ord( $a[ $f + 8 ] ) ) - $g & 0x1F ],
- $f++
- );
- return $d;
- }
相关推荐:《PHP教程》
以上就是PHP随机生成不重复的8位卡号(数字)和卡密(字符串)的详细内容,更多请关注Gxlcms其它相关文章!