当前位置:首页 > PHP教程 > php应用 > 列表

php编写批量生成不重复的卡号密码代码

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-26 22:02:50 浏览: 评论:0 

本文给大家分享的是一个十分实用的代码,项目中经常需要用到,可以批量生成不重复的卡号密码的2种方法,有需要的小伙伴参考下吧。

闲的蛋疼的时候,顺便加强下自己对PHP中数组操纵的一些技巧,就写了下面的一段小代码,可以随机生成卡号密码对应的数组,并且自动去重复,思路没有,纯粹瞎掰。

  1. <?php header('Content-Type:text/html; charset=utf-8'); 
  2.  function MakeCard() 
  3.  { 
  4.   set_time_limit(0); 
  5.  
  6.   //处理缓冲区 
  7.   ob_end_clean(); 
  8.   ob_implicit_flush(true); 
  9.   echo str_pad(" ", 256); 
  10.  
  11.   if(intval($_POST['num']>0)) $num=intval($_POST['num']); //数量 
  12.   if(intval($_POST['point']>0)) $point=intval($_POST['point']); //点数 
  13.   if(intval($_POST['batch']>0)) $batch=intval($_POST['batch']); //批号 
  14.   if(($_POST['ym']!="")) $ym=$_POST['ym']; //发行年月 
  15.   else $ym=date('ym'); 
  16.  
  17.   if($num==0) return
  18.  
  19.   $num=$num*100; //卡的张数,即记录数 
  20.  
  21.   echo "<p>开始 ".date("H:i:s")." "
  22.  
  23.   for($i=1;$i<=$num;$i++) 
  24.   { 
  25.    $sn=sprintf("%02s%s%06s",$batch,$ym,$i); 
  26.    $seek=mt_rand(0,9999).mt_rand(0,9999).mt_rand(0,9999); //12位 
  27.    $start=mt_rand(0,20); 
  28.    $str=strtoupper(substr(md5($seek),$start,12)); 
  29.    $str=str_replace("O",chr(mt_rand(65,78)),$str); 
  30.    $str=str_replace("0",chr(mt_rand(65,78)),$str); 
  31.    $row=array('sn'=>$sn,'password'=>$str,'created'=>time(),'point'=>$point); 
  32.    //查重 
  33.   //在这里加插入数据的代码. 
  34.   print_r($row); 
  35.   } 
  36.   echo " 结束 ".date("H:i:s").""
  37.   printf("<br>成功生成:%s万个 %s点 的密码</p>",$num/1e4,$point); 
  38.   return $num
  39.  } //函数结束 
  40.  
  41. $_POST['num']=1; 
  42. $_POST['point']=10; 
  43. $_POST['batch']=10; 
  44. $_POST['ym']='1405'
  45. echo MakeCard(); ?> 

方法二:

  1. <?php 
  2. $numLen=16; 
  3. $pwdLen=10; 
  4. $c=100;//生成100组卡号密码 
  5. $sNumArr=range(0,9); 
  6. $sPwdArr=array_merge($sNumArr,range('A','Z')); 
  7.  
  8. $cards=array(); 
  9. for($x=0;$x$c;$x++){ 
  10.  $tempNumStr=array(); 
  11.  for($i=0;$i$numLen;$i++){ 
  12.   $tempNumStr[]=array_rand($sNumArr); 
  13.  } 
  14.  $tempPwdStr=array(); 
  15.  for($i=0;$i$pwdLen;$i++){ 
  16.   $tempPwdStr[]=$sPwdArr[array_rand($sPwdArr)];   
  17.  } 
  18.  $cards[$x]['no']=implode('',$tempNumStr); 
  19.  $cards[$x]['pwd']=implode('',$tempPwdStr); 
  20. array_unique($cards); 
  21. print_r($cards); 
  22. ?>

Tags: php批量生成不重复卡号密码

分享到: