/** * 生成不重複的亂數字 * @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位元卡號(數位)和卡密(字串)的詳細內容,更多請關注TW511.COM其它相關文章!