php随机生成卡密,PHP随机生成不反复的8位卡号(数字)和卡密(字符串)_后端开发...
一、生成不反復的隨機數字,可自定義長度
/**
* 生成不反復的隨機數字
* @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位卡號(數字)和卡密(字符串)的細致內容,更多請關注ki4網別的相干文章!
為木唯品 , 版權所有丨如未注明 , 均為原創丨本網站采用BY-NC-SA協議進行授權
轉載請注明原文鏈接:PHP隨機生成不反復的8位卡號(數字)和卡密(字符串)_后端開發
總結
以上是生活随笔為你收集整理的php随机生成卡密,PHP随机生成不反复的8位卡号(数字)和卡密(字符串)_后端开发...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端学习(1967)vue之电商管理系统
- 下一篇: 基于PHP的个人博客网站系统