Generierung einer eindeutigen ID in PHP
Ich versuche zu generieren, die eine eindeutige ID in php um zu speichern, Benutzer-hochgeladene Inhalte auf einer FS ohne Konflikte. Ich bin mit php, und im moment ist dieser kleine Schnipsel ist verantwortlich für die Erzeugung der UID:
$id = tempnam (".", "");
unlink($id);
$id = substr($id, 2);
Dieser code ist hässlich: es wird eine temporäre Datei auf dem Dateisystem und löscht Sie, behalten nur die relevanten einzigartigen Teil der generierten Zeichenfolge.
Gibt es einen besseren Weg, dies zu tun, am besten ohne externe Abhängigkeiten?
Vielen Dank!
InformationsquelleAutor der Frage pbh101 | 2008-10-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bekommt ein Präfix eindeutige id basiert auf der aktuellen Zeit in Mikrosekunden.
InformationsquelleAutor der Antwort Xenph Yan
Da beide uniqid() und rand() sind Funktionen, basierend auf der aktuellen Zeit, rand() fügt fast keine Entropie, da die Zeit ändern, wird nur eine kleine Menge zwischen den jeweiligen Aufrufe.
Solange Sie die
more_entropy
option, sollten Sie nie haben, um eine Kollision innerhalb eines einzelnen Servers. Wenn Sie die clustering verwenden, sicher sein, um ein Präfix, das unterscheidet sich zwischen den Servern.InformationsquelleAutor der Antwort Will Rhodes
uniqid() ist was du suchst, in den meisten praktischen Situationen.
Können Sie machen es noch mehr "uniq" indem eine große zufällige Zahl, nachdem es.
InformationsquelleAutor der Antwort Robert Elwell