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

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

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 "

开始 ".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("
成功生成:%s万个 %s点 的密码

",$num/1e4,$point);

return $num;

} //函数结束

$_POST['num']=1;

$_POST['point']=10;

$_POST['batch']=10;

$_POST['ym']='1405';

echo MakeCard(); ?>

方法二:

$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中文网

TAG标签:脚本

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值