Heim >Backend-Entwicklung >PHP-Tutorial >PHP generiert eine eindeutige ID

PHP generiert eine eindeutige ID

angryTom
angryTomnach vorne
2019-10-23 17:22:463324Durchsuche

Vorwort

Mit der PHP-Funktion uniqid() kann eine eindeutige, nicht wiederholte Kennung generiert werden, die auf dem aktuellen Zeitstempel in Mikrosekunden basiert. Bei hoher Parallelität oder extrem kurzen Intervallen (z. B. Schleifencode) wird eine große Menge doppelter Daten angezeigt. Selbst wenn der zweite Parameter verwendet wird, wird er wiederholt. Die beste Lösung besteht darin, die MD5-Funktion zu kombinieren, um eine eindeutige ID zu generieren.

Verwenden Sie die Funktion

string uniqid ([ string $prefix = "" [, bool $more_entropy = false ]] )

, um eine vorangestellte eindeutige ID basierend auf der Anzahl der Mikrosekunden in der aktuellen Zeit zu erhalten. Präfix Nützlicher Parameter. Beispiel: Wenn auf mehreren Hosts eine eindeutige ID in derselben Mikrosekunde generiert werden könnte. Wenn das Präfix leer ist, beträgt die Länge der zurückgegebenen Zeichenfolge 13. Wenn moreentropy TRUE ist, beträgt die Länge der zurückgegebenen Zeichenfolge 23. moreentropy Wenn auf TRUE gesetzt, fügt uniqid() am Ende der zurückgegebenen Zeichenfolge zusätzliche Entropie hinzu (unter Verwendung eines kombinierten linearen Kongruenzgenerators). Machen Sie die eindeutige ID einzigartiger.

PHP uniqid() generiert eine sich nicht wiederholende eindeutige Kennung, Methode eins

Diese Methode generiert eine große Menge wiederholter Daten. Durch Ausführen des folgenden PHP-Codes werden die eindeutige Kennung und das entsprechende Element generiert Der Wert im Array-Index gibt an, wie oft der eindeutige Bezeichner wiederholt wird.

<?php
$units = array();for($i=0;$i<1000000;$i++){
    $units[] = uniqid();}
$values  = array_count_values($units);
$duplicates = [];foreach($values as $k=>$v){    if($v>1){
        $duplicates[$k]=$v;    }}
echo &#39;<pre class="brush:php;toolbar:false">&#39;;print_r($duplicates);
echo &#39;
';?>

PHP uniqid() Methode 2 zum Generieren eindeutiger eindeutiger Identifikatoren

Diese Methode generiert deutlich weniger doppelte eindeutige Identifikatoren.

<?php
$units = array();for($i=0;$i<1000000;$i++){
    $units[] = uniqid(&#39;&#39;,true);}
$values  = array_count_values($units);
$duplicates = [];foreach($values as $k=>$v){    if($v>1){
        $duplicates[$k]=$v;    }}
echo &#39;<pre class="brush:php;toolbar:false">&#39;;print_r($duplicates);
echo &#39;
';?>

PHP uniqid() generiert nicht-duplizierte eindeutige Kennungen, Methode drei

Es gibt keine Duplikate in der eindeutigen Kennung, die von dieser Methode generiert wird.

<?php
$units = array();for($i=0;$i<1000000;$i++){
    $units[]=md5(uniqid(md5(microtime(true)),true));}
$values  = array_count_values($units);
$duplicates = [];foreach($values as $k=>$v){    if($v>1){
        $duplicates[$k]=$v;    }}
echo &#39;<pre class="brush:php;toolbar:false">&#39;;print_r($duplicates);
echo &#39;
';?>

PHP uniqid() generiert eine eindeutige Kennung, Methode 4

Verwenden Sie die Funktion sessioncreateid(), um eine eindeutige Kennung zu generieren. Nach tatsächlichen Tests wurde festgestellt, dass selbst wenn sessioncreateid() 100 heißt Millionen Mal in einer Schleife hat es keine Duplizierung gegeben. php sessioncreateid() ist eine neue Funktion in PHP 7.1, die zum Generieren einer Sitzungs-ID verwendet wird. Sie kann in niedrigeren Versionen nicht verwendet werden.

Weitere PHP-Kenntnisse finden Sie auf der PHP-Chinese-Website!

Das obige ist der detaillierte Inhalt vonPHP generiert eine eindeutige ID. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen