我要生成大批的卡号,都是20位,怎么可以保证卡号不重复,且由字母和数字杂合组成呢?

entice 2003-10-09 01:54:06
有什么好的思路吗?

请高手指点.
...全文
76 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinyaoxp 2003-10-18
  • 打赏
  • 举报
回复
学习
entice 2003-10-09
  • 打赏
  • 举报
回复
php遇到错误会显示错误吧,我知道java可以除错,asp也可以,php怎么可以忽略错误呢?
fwolf 2003-10-09
  • 打赏
  • 举报
回复
反正你要写到数据库中,那就随机生成一个(或一次数个,麻烦些,需要检查本批中有无重复)字符串,写入数据库中,数据库操作忽略INSERT错误,当然前提是数据库中这个字段要设置为Unique类型。
entice 2003-10-09
  • 打赏
  • 举报
回复
xuzuning(唠叨)

这样位数好象保证不了.
xuzuning 2003-10-09
  • 打赏
  • 举报
回复
<?php
function d() {
$s = split(" ",microtime());
$s = $s[1].substr($s[0],2).substr($s[0],2);
return base_convert($s,10,20);
}
$a = d();
$b = d();
$c = d();
echo "$a<br>$b<br>$c<br>";
?>
算法说明
1、microtime()返回包含百万分之一秒的时间数据,处理后可形成唯一的串。若服务器速度很快可用精确到百万分之一秒的时间加顺号,顺号可用数据库产生。由于有数据库操作也可放慢程序的执行
2、使用base_convert做进制转换,不会改变原串的唯一性
3、必要时可考虑使用usleep来时程序暂停数毫秒
entice 2003-10-09
  • 打赏
  • 举报
回复
那不是太慢了吗?

我不是一次生成,我要分批生成,生成后存入数据库中,都不能重复的
myblessu 2003-10-09
  • 打赏
  • 举报
回复
循环10000次了.
entice 2003-10-09
  • 打赏
  • 举报
回复
我想得是在卡号中的毫秒数.
entice 2003-10-09
  • 打赏
  • 举报
回复
那要是有上万个呢?
myblessu 2003-10-09
  • 打赏
  • 举报
回复
创建一个数组.

随机生成一个20的数.判断这个数是否在这数组里,如在则重新生成一个,如没有就把这数加入的数组中.

一直循环到你想要的个数就可以了.

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧