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

5年以前  |  阅读数:251 次  |  编程语言: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分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例