Heim Backend-Entwicklung PHP-Tutorial php怎么生成不重复的卡号

php怎么生成不重复的卡号

Jun 13, 2016 am 10:07 AM
echo micro quot

php如何生成不重复的卡号
就像电话卡似的,全是数字,不能带字母。

最开始想到是:

N位随机数+数据库一个表的自增id+N位随机数

不想用数据库,想到一个唯一的标准是时间。用时间戳跟上几位随机数。

假如这样生成16的卡号:
时间戳10位+6位随机数 1316651745695261  


有时需要一个循环生成多个卡号,一个循环里前面的时间戳(基本是一样,除非循环里还有其它费时操作),后面的6位随机数无法保证唯一。想到结合microtime

循环调用microtime十次:

0.80717200 1316675664
0.80720600 1316675664
0.80721300 1316675664
0.80721900 1316675664
0.80722400 1316675664
0.80723000 1316675664
0.80723600 1316675664
0.80724100 1316675664
0.80724600 1316675664
0.80725200 1316675664
我想着是跟上位置在807172这里的数字便于区分开。代码:

PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->for($i=0;$imicrotime_float();         echo $time = microtime();         $arr = explode(" ",$time);         $micro = $arr[0]*100000000;         $micro_str = substr($micro."",0,6);         $timestamp = $arr[1];         echo "\t".$timestamp."".$micro_str;         echo '<br>';     }
Nach dem Login kopieren


暂时是本地windows下测试不会有重复的,会不会有比较牛X的服务器计算能力猛,微秒也重复了?

另外这样生成的卡号也不好一眼能看出个啥啥的。又不能随意截取其中的几位怕失去了唯一性。不知道有木有好的方法。
比如移动充值卡生成机制?位数少一点的,太多了,人都晕了。。。

------解决方案--------------------
微秒数重复的可能性不大,况且你后面还有随机数,如果你不确定还可以增加usleep(1)等待下。

但如果服务器修改时间你就没法保证微秒数不重复了。
------解决方案--------------------
如果只用 时间戳(可重复)+随机数(可重复) 这样的话,是不能保证100%没冲突的......
建议:时间戳(可能重复)+随机数(可能重复)+数据库id或其它唯一值(唯一) 才能得到不重复的结果。
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Fünf ausgewählte Open-Source-Projekte in der Go-Sprache, mit denen Sie die Welt der Technologie erkunden können Fünf ausgewählte Open-Source-Projekte in der Go-Sprache, mit denen Sie die Welt der Technologie erkunden können Jan 30, 2024 am 09:08 AM

Fünf ausgewählte Open-Source-Projekte in der Go-Sprache, mit denen Sie die Welt der Technologie erkunden können

Go-Grundlagen zur Sprachentwicklung: 5 beliebte Framework-Empfehlungen Go-Grundlagen zur Sprachentwicklung: 5 beliebte Framework-Empfehlungen Mar 24, 2024 pm 01:15 PM

Go-Grundlagen zur Sprachentwicklung: 5 beliebte Framework-Empfehlungen

Welches Datenkabel ist Micro? Welches Datenkabel ist Micro? Nov 22, 2022 pm 05:42 PM

Welches Datenkabel ist Micro?

Implementierung der verteilten Aufgabenplanung mit Golangs Web-Framework Echo-Framework Implementierung der verteilten Aufgabenplanung mit Golangs Web-Framework Echo-Framework Jun 24, 2023 am 11:49 AM

Implementierung der verteilten Aufgabenplanung mit Golangs Web-Framework Echo-Framework

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决

Laravel-Entwicklung: Wie implementiert man die WebSockets-Kommunikation mit Laravel Echo und Pusher? Laravel-Entwicklung: Wie implementiert man die WebSockets-Kommunikation mit Laravel Echo und Pusher? Jun 13, 2023 pm 05:01 PM

Laravel-Entwicklung: Wie implementiert man die WebSockets-Kommunikation mit Laravel Echo und Pusher?

Detaillierte Erläuterung der Rolle und Verwendung des Schlüsselworts echo in PHP Detaillierte Erläuterung der Rolle und Verwendung des Schlüsselworts echo in PHP Jun 28, 2023 pm 08:12 PM

Detaillierte Erläuterung der Rolle und Verwendung des Schlüsselworts echo in PHP

Entdecken Sie das Go-Sprach-Framework: 5 Optionen, die Sie nicht verpassen sollten! Entdecken Sie das Go-Sprach-Framework: 5 Optionen, die Sie nicht verpassen sollten! Feb 19, 2024 pm 02:29 PM

Entdecken Sie das Go-Sprach-Framework: 5 Optionen, die Sie nicht verpassen sollten!

See all articles