• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

PHP随机生成不重复的8位卡号(数字)和卡密(字符串)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一、生成不重复的随机数字,可自定义长度(最多支持10位数

 1 /**
 2  * 生成不重复的随机数字(不能超过10位数,否则while循环陷入死循环)
 3  * @param  int $start 需要生成的数字开始范围
 4  * @param  int $end 结束范围
 5  * @param  int $length 需要生成的随机数个数
 6  * @return number      生成的随机数
 7  */
 8 function getRandNumber($start = 0, $end = 9, $length = 8)
 9 {
10     //初始化变量为0
11     $count = 0;
12     //建一个新数组
13     $temp = array();
14     while ($count < $length) {
15         //在一定范围内随机生成一个数放入数组中
16         $temp[] = mt_rand($start, $end);
17         //$data = array_unique($temp);
18         //去除数组中的重复值用了“翻翻法”,就是用array_flip()把数组的key和value交换两次。这种做法比用 array_unique() 快得多。
19         $data = array_flip(array_flip($temp));
20         //将数组的数量存入变量count中
21         $count = count($data);
22     }
23     //为数组赋予新的键名
24     shuffle($data);
25     //数组转字符串
26     $str = implode(",", $data);
27     //替换掉逗号
28     $number = str_replace(',', '', $str);
29     return $number;
30 }
31 
32 echo getRandNumber(0, 9, 8)."<br/>";

二、随机生成不重复的8位卡密

 1 //随机生成不重复的8位卡密
 2 function makeCardPassword()
 3 {
 4     $code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
 5     $rand = $code[rand(0, 25)]
 6         . strtoupper(dechex(date('m')))
 7         . date('d') . substr(time(), -5)
 8         . substr(microtime(), 2, 5)
 9         . sprintf('%02d', rand(0, 99));
10     for (
11         $a = md5($rand, true),
12         $s = '0123456789ABCDEFGHIJKLMNOPQRSTUV',
13         $d = '',
14         $f = 0;
15         $f < 8;
16         $g = ord($a[$f]),
17         $d .= $s[($g ^ ord($a[$f + 8])) - $g & 0x1F],
18         $f++
19     ) ;
20     return $d;
21 }
22 
23 echo makeCardPassword();

 

链接:https://www.php.cn/php-weizijiaocheng-437582.html(文章有坑,生成不重复的随机数字,可自定义长度没有提示最多只支持10数


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP:ImageMagick完美代替GB类库处理图像发布时间:2022-07-10
下一篇:
PHPMYSQL查询当天记录发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap