uniqid

(PHP 4, PHP 5, PHP 7)

uniqidErzeugt eine eindeutige ID

Beschreibung

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

Gibt eine eindeutige ID mit Präfix zurück, die auf der aktuellen Zeit in Mikrosekunden basiert.

Achtung

Diese Funktion erzeugt keine kryptographisch sicheren Werte und sollte nicht für kryptographische Zwecke verwendet werden. Wenn kryptographisch sichere Werte benötigt werden, sollten stattdessen die Funktionen random_int(), random_bytes() oder openssl_random_pseudo_bytes() verwendet werden.

Warnung

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. Falls more_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.

Warnung

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 auf TRUE gesetzt sein, damit die Funktion arbeitet.