Die PHP-Funktion uniqid() kann verwendet werden, um eine eindeutige Kennung zu generieren, die sich nicht wiederholt, basierend auf dem aktuellen Zeitstempel in Mikrosekunden. Bei hoher Parallelität oder extrem kurzen Intervallen (z. B. Schleifencode) wird eine große Menge doppelter Daten angezeigt. Auch 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.
Beschreibung
string uniqid ([ string $prefix = "" [, bool $more_entropy = false ]] )
Erhalten Sie eine vorangestellte eindeutige ID basierend auf der aktuellen Zeit in Mikrosekunden.
Parameter
prefix
Nützliche Parameter. Beispiel: Wenn auf mehreren Hosts eine eindeutige ID in derselben Mikrosekunde generiert werden kann. Wenn das
Präfix leer ist, beträgt die Länge der zurückgegebenen Zeichenfolge 13. Wenn more_entropy TRUE ist, beträgt die Länge der zurückgegebenen Zeichenfolge 23.
more_entropy
Wenn auf TRUE gesetzt, fügt uniqid() am Ende der zurückgegebenen Zeichenfolge zusätzliche Kongruenz hinzu (unter Verwendung eines kombinierten linearen Kongruenzgenerators). Machen Sie die eindeutige ID einzigartiger.
PHP uniqid() Methode 1 zum Generieren sich nicht wiederholender eindeutiger Bezeichner
Diese Methode generiert eine große Menge doppelter Daten und führt zum eindeutigen Bezeichner Der durch den Array-Index generierte Elementwert 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 '<pre class="brush:php;toolbar:false">'; print_r($duplicates); echo ''; ?>
PHP uniqid() Methode 2 zum Generieren eindeutiger eindeutiger Bezeichner
Diese Methode generiert deutlich weniger doppelte eindeutige Bezeichner.
<?php $units = array(); for($i=0;$i<1000000;$i++){ $units[] = uniqid('',true); } $values = array_count_values($units); $duplicates = []; foreach($values as $k=>$v){ if($v>1){ $duplicates[$k]=$v; } } echo '<pre class="brush:php;toolbar:false">'; print_r($duplicates); echo ''; ?>
PHP uniqid() Methode 3 zum Generieren nicht doppelter eindeutiger Bezeichner
Der von dieser Methode generierte eindeutige Bezeichner enthält keine Duplikate.
<?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 '<pre class="brush:php;toolbar:false">'; print_r($duplicates); echo ''; ?>
PHP uniqid()-Methode 4 zum Generieren eindeutiger Bezeichner, die nicht wiederholt werden
Verwenden Sie die Funktion session_create_id(), um eindeutige Bezeichner zu generieren Wenn session_create_id() zyklisch 100 Millionen Mal aufgerufen wurde, gab es keine Duplikate.
php session_create_id() ist eine neue Funktion in PHP 7.1. Sie wird zum Generieren einer Sitzungs-ID verwendet. Sie kann in niedrigeren Versionen nicht verwendet werden.
Der obige Inhalt dient nur als Referenz!
Empfohlenes Video-Tutorial: PHP-Video-Tutorial
Das obige ist der detaillierte Inhalt vonPHP generiert automatisch eindeutige IDs. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!