Die Schwierigkeit bei der Zufallsgenerierung besteht darin, Kollisionen zu vermeiden. Natürlich können Sie Mechanismen wie MD5 und GUID verwenden, aber als Konto sieht es chaotisch aus und die Anzahl der generierten Ziffern ist zu lang.
Diese Methode muss gleichzeitige Kollisionen nur innerhalb von 1 Sekunde lösen, da der feste Kopf die Unixtime-Zeit verwendet, die auf die Sekunde genau ist. Wenn sie 1 Sekunde überschreitet, muss sich die Zeit dieses Kopfes geändert haben. Gleichzeitig kann diese Methode auch zufällige Bestellnummern für Benutzer generieren.
Die Testbedingung besteht darin, mithilfe einer Schleife 10.000 zufällige Konten (Millisekundenebene) mit 0 Kollisionen und 100.000 Konten mit etwa 0–3 Kollisionen zu erstellen. Es sollte kein Internetunternehmen geben, das im Handumdrehen so viele Konten gleichzeitig erstellen würde, daher reicht es aus, um die Größenordnung von Milliarden PV zu bewältigen.
// Zufällige Benutzernamen automatisch generieren
// Testen Sie, erstellen Sie 10.000 zufällige Konten in einer Schleife, 0 Kollisionen, 100.000 ungefähr 0-3 Kollisionen, genug, um in Zukunft Milliarden von Levels zu bewältigen PV
private function genUserNumber() { $chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; $username = ""; for ( $i = 0; $i < 6; $i++ ) { $username .= $chars[mt_rand(0, strlen($chars))]; } return strtoupper(base_convert(time() - 1420070400, 10, 36)).$username; }