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

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

  <?php header('Content-Type:text/html; charset=utf-8');   function MakeCard()   {    set_time_limit(0);      //处理缓冲区    ob_end_clean();    ob_implicit_flush(true);    echo str_pad(" ", 256);      if(intval($_POST['num']>0)) $num=intval($_POST['num']); //数量    if(intval($_POST['point']>0)) $point=intval($_POST['point']); //点数    if(intval($_POST['batch']>0)) $batch=intval($_POST['batch']); //批号    if(($_POST['ym']!="")) $ym=$_POST['ym']; //发行年月    else $ym=date('ym');      if($num==0) return;      $num=$num*100; //卡的张数,即记录数      echo "<p>开始 ".date("H:i:s")." ";      for($i=1;$i<=$num;$i++)    {     $sn=sprintf("%02s%s%06s",$batch,$ym,$i);     $seek=mt_rand(0,9999).mt_rand(0,9999).mt_rand(0,9999); //12位     $start=mt_rand(0,20);     $str=strtoupper(substr(md5($seek),$start,12));     $str=str_replace("O",chr(mt_rand(65,78)),$str);     $str=str_replace("0",chr(mt_rand(65,78)),$str);     $row=array('sn'=>$sn,'password'=>$str,'created'=>time(),'point'=>$point);     //查重    //在这里加插入数据的代码.    print_r($row);    }    echo " 结束 ".date("H:i:s")."";    printf("<br>成功生成:%s万个 %s点 的密码</p>",$num/1e4,$point);    return $num;   } //函数结束    $_POST['num']=1;  $_POST['point']=10;  $_POST['batch']=10;  $_POST['ym']='1405';  echo MakeCard(); ?>    

方法二:

  <?php  $numLen=16;  $pwdLen=10;  $c=100;//生成100组卡号密码  $sNumArr=range(0,9);  $sPwdArr=array_merge($sNumArr,range('A','Z'));    $cards=array();  for($x=0;$x< $c;$x++){   $tempNumStr=array();   for($i=0;$i< $numLen;$i++){    $tempNumStr[]=array_rand($sNumArr);   }   $tempPwdStr=array();   for($i=0;$i< $pwdLen;$i++){    $tempPwdStr[]=$sPwdArr[array_rand($sPwdArr)];     }   $cards[$x]['no']=implode('',$tempNumStr);   $cards[$x]['pwd']=implode('',$tempPwdStr);  }  array_unique($cards);  print_r($cards);  ?>  

以上所述就是本文的全部内容了,希望大家能够喜欢。

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

郑重声明:本网站发布的内容(图片、视频和文字)以及用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服

发表评论

登录后才能评论