In PHP müssen wir häufig eindeutige Kennungen generieren, z. Die Funktion Uniqid () und str_shuffle () sind zwei sehr nützliche Funktionen in PHP. Sie erzeugen jeweils eindeutige Werte und zufällige Werte, wir können sie jedoch in Kombination verwenden, um eine eindeutige Kennung zu erzeugen, die sowohl Zeitstempel als auch zufällige Elemente enthält.
Im Folgenden werden im Detail erläutert, wie diese beiden Funktionen kombiniert werden, um eine eindeutige Kennung zu generieren.
Die Funktion Uniqid () wird verwendet, um eine eindeutige ID basierend auf der aktuellen Zeit (Mikrosekunde) zu generieren. Die grundlegende Nutzung ist wie folgt:
<span><span><span class="hljs-variable">$id</span></span><span> = </span><span><span class="hljs-title function_ invoke__">uniqid</span></span><span>();
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$id</span></span><span>;
</span></span>Nach der Ausführung generiert Uniqid () eine eindeutige Kennung basierend auf der aktuellen Zeit. Standardmäßig generiert es eine Zeichenfolge, die auf dem aktuellen Zeitstempel basiert. Sie können auch eine Präfix -Zeichenfolge übergeben:
<span><span><span class="hljs-variable">$id</span></span><span> = </span><span><span class="hljs-title function_ invoke__">uniqid</span></span><span>(</span><span><span class="hljs-string">'prefix_'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$id</span></span><span>;
</span></span>Die generierte ID basiert auf Mikrosekunden, weshalb sie in den meisten Fällen Einzigartigkeit garantiert. Aber seine Generation stützt sich auf Zeitstempel, und theoretisch könnte die gleiche ID generiert werden, wenn die beiden Anrufe sehr nahe sind.
Die Funktion str_shuffle () kann die Zeichenreihenfolge in einer Zeichenfolge zufällig stören. Die Verwendung ist sehr einfach:
<span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"abcdef"</span></span><span>;
</span><span><span class="hljs-variable">$shuffled</span></span><span> = </span><span><span class="hljs-title function_ invoke__">str_shuffle</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$shuffled</span></span><span>;
</span></span>Dies gibt eine neue Zeichenfolge mit zufälligen Zeichen zurück und das Ergebnis jedes Anrufs ist unterschiedlich.
Um die Sicherheit und Zufälligkeit der Generierung eindeutiger Kennungen zu verbessern, können wir die von uniqid () generierte ID mit den von str_shuffle () generierten zufälligen Zeichen kombinieren. Auf diese Weise gewährleisten wir nicht nur die Einzigartigkeit des Zeitstempels, sondern führen auch Zufälligkeit ein, wodurch der generierte Kennung komplexer wird.
Beispielsweise kombiniert der folgende Code die ID, die von Uniqid () mit zufälligen Buchstaben und Zahlen generiert wurde:
<span><span><span class="hljs-comment">// Generieren Sie eindeutig eindeutig auf der aktuellen ZeitID</span></span><span>
</span><span><span class="hljs-variable">$uniqid</span></span><span> = </span><span><span class="hljs-title function_ invoke__">uniqid</span></span><span>();
</span><span><span class="hljs-comment">// Erstellen Sie eine zufällige Zeichenfolge,Kann Buchstaben und Zahlen enthalten</span></span><span>
</span><span><span class="hljs-variable">$random_string</span></span><span> = </span><span><span class="hljs-title function_ invoke__">str_shuffle</span></span><span>(</span><span><span class="hljs-string">"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"</span></span><span>);
</span><span><span class="hljs-comment">// Abfangen eine zufällige Zeichenfolgelänge(Zum Beispiel8Bisschen)</span></span><span>
</span><span><span class="hljs-variable">$random_string</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$random_string</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">8</span></span><span>);
</span><span><span class="hljs-comment">// Kombinationuniqidund zufällige Saiten,Generieren Sie die endgültige eindeutige Kennung</span></span><span>
</span><span><span class="hljs-variable">$unique_id</span></span><span> = </span><span><span class="hljs-variable">$uniqid</span></span><span> . </span><span><span class="hljs-variable">$random_string</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$unique_id</span></span><span>;
</span></span>Um sicherzustellen, dass die Kennung zufällig und eindeutiger ist, können wir auch mehr zufällige Elemente hinzufügen oder die Erzeugung anpassen. Verwenden Sie beispielsweise den zweiten Parameter von Uniqid () , um ihn zufällig zu machen, während die von str_shuffle () generierte zufällige Zeichenfolge etwas länger erzeugt wird:
<span><span><span class="hljs-comment">// verwendenuniqid()Der zweite Parameter zur Erhöhung der Zufälligkeit</span></span><span>
</span><span><span class="hljs-variable">$uniqid</span></span><span> = </span><span><span class="hljs-title function_ invoke__">uniqid</span></span><span>(</span><span><span class="hljs-string">''</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
</span><span><span class="hljs-comment">// Erstellen Sie eine längere zufällige Zeichenfolge</span></span><span>
</span><span><span class="hljs-variable">$random_string</span></span><span> = </span><span><span class="hljs-title function_ invoke__">str_shuffle</span></span><span>(</span><span><span class="hljs-string">"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"</span></span><span>);
</span><span><span class="hljs-comment">// Fangen Sie die Länge einer zufälligen Zeichenfolge ab,Stellen Sie sicher, dass es eine gewisse Komplexität hat</span></span><span>
</span><span><span class="hljs-variable">$random_string</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$random_string</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">12</span></span><span>);
</span><span><span class="hljs-comment">// Kombinationuniqidund zufällige Saiten</span></span><span>
</span><span><span class="hljs-variable">$unique_id</span></span><span> = </span><span><span class="hljs-variable">$uniqid</span></span><span> . </span><span><span class="hljs-variable">$random_string</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$unique_id</span></span><span>;
</span></span>Die auf diese Weise generierte Kennung enthält eine eindeutige ID, die auf dem Zeitstempel basiert, und mischt gleichzeitig einen längeren zufälligen Abschnitt, um die Komplexität und Zufälligkeit der Kennung sicherzustellen.
Die Art und Weise, wie eindeutige Kennungen in Kombination mit Uniqid () und str_shuffle () die Einzigartigkeit und Zufälligkeit der ID gleichzeitig sicherstellen können. Uniqid () generiert eine eindeutige ID, die auf dem aktuellen Zeitstempel basiert, während Str_Shuffle () der ID mehr zufällige Zeichen hinzufügt, wodurch die Kennung sicherer und schwerer vorherzusagen wird. Diese Methode eignet sich besonders für die Verwendung in Szenarien, in denen eine hohe Sicherheit und Einzigartigkeit erforderlich sind, z. B. in Auftragsnummern, Sitzungs -IDs usw.
Mit diesen einfachen Schritten können Sie mit PHP problemlos eine eindeutige und zufällige Kennung erzeugen.