uniqid
(PHP 4, PHP 5, PHP 7, PHP 8)
uniqid — Erzeugt eine eindeutige ID
Beschreibung
$prefix
= "", bool $more_entropy
= false
): stringGibt eine eindeutige ID mit Präfix zurück, die auf der aktuellen Zeit in Mikrosekunden basiert.
Diese Funktion erzeugt keine kryptografisch sicheren Werte und sollte nicht für kryptografische Zwecke verwendet werden. Wenn kryptografisch sichere Werte benötigt werden, sollten stattdessen die Funktionen random_int(), random_bytes() oder openssl_random_pseudo_bytes() verwendet werden.
Diese Funktion garantiert nicht die Eindeutigkeit der Rückgabewerte. Da die
meisten System die Systemzeit durch NTP oder ähnlich justieren, ändert sich
die Systemzeit kontinuierlich. Daher ist es möglich, dass diese Funktion
keine eindeutige ID für den Prozess/Thread zurückgibt.
more_entropy
kann verwendet werden, um die
Wahrscheinlichkeit der Eindeutigkeit zu erhöhen.
Parameter-Liste
-
prefix
-
Kann z.B. dann hilfreich sein, wenn Sie auf mehreren Hosts gleichzeitig IDs erzeugen, was im ungünstigsten Fall zur selben Mikrosekunde geschehen kann.
Bei leerem
prefix
ist die zurückgegebene Zeichenkette 13 Zeichen lang. Fallsmore_entropy
true
ist, sind es 23 Zeichen. -
more_entropy
-
Falls dieser Parameter auf
true
gesetzt ist, wird uniqid() am Ende des Rückgabewertes zusätzliche mit dem Kongruenzgenerator für Pseudozufallszahlen (Combined Linear Congruential Generator) erzeugte Entropie anfügen, wodurch die Wahrscheinlichkeit erhöht wird, dass das Ergebnis eindeutig ist.
Rückgabewerte
Gibt eine zeitstempelbasierte eindeutige ID als Zeichenkette zurück.
Diese Funktion versucht eine eindeutige Kennung zu erzeugen, aber sie garantiert nicht die hunderprozentige Eindeutigkeit des Rückgabewerts.
Beispiele
Beispiel #1 uniqid()-Beispiel
<?php
/* Eine eindeutige ID, beispielsweise: 4b3403665fea6 */
$uniqid = uniqid();
/* Zusätzlich kann ein Präfix genutzt werden. Dabei sind die
* folgenden beiden Anweisungen identisch:
*/
$uniqid = uniqid($prefix);
$uniqid = $prefix . uniqid();
/* Weiterhin kann der more_entropy Parameter aktiviert werden (auf einigen Systemen
* wie Cygwin ist dies sogar zwangsweise erforderlich). Dadurch generiert uniqid()
* einen Wert ähnlich dem folgenden: 4b340550242239.64159797
*/
$uniqid = uniqid('', true);
Anmerkungen
Hinweis:
Unter Cygwin muss der Parameter
more_entropy
auftrue
gesetzt sein, damit die Funktion arbeitet.