uniqid
(PHP 4, PHP 5)
uniqid — Erzeugt eine eindeutige ID
Beschreibung
$prefix = ""
[, bool $more_entropy = false
]] )Gibt eine eindeutige ID mit Präfix zurück, die auf der aktuellen Zeit in Mikrosekunden basiert.
Diese Funktion erzeugt keine zufälligen oder unvoraussagbaren Zeichenketten. Diese Funktion darf nicht für Sicherheitszwecke verwendet werden. Kryptographisch sichere Zufalls-Funktionen/Generatoren und kryptographisch sichere Hash-Funktionen sollten verwendet werden, um unvoraussagbare sichere IDs zu erzeugen.
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
prefixist die zurückgegebene Zeichenkette 13 Zeichen lang. Fallsmore_entropyTRUEist, sind es 23 Zeichen. -
more_entropy -
Falls dieser Parameter auf
TRUEgesetzt 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 eindeutige ID als Zeichenkette zurück.
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
Diese Funktion erzeugt keine kryptographisch sicheren Tokens; tatsächlich ist der Rückgabewert ohne die Übergabe eines zusätzlichen Parameters nur wenig von microtime() verschieden. Zum Erzeugen von kryptographisch sicheren Tokens sollte openssl_random_pseudo_bytes() verwendet werden.
Hinweis:
Unter Cygwin muss der Parameter
more_entropyaufTRUEgesetzt sein, damit die Funktion arbeitet.