Générer un identifiant unique en PHP
Je suis en train de générer un ID unique en php pour stocker de l'utilisateur du contenu téléchargé sur un FS sans conflits. Je suis à l'aide de php, et au moment où ce petit extrait est responsable de la génération de l'UID:
$id = tempnam (".", "");
unlink($id);
$id = substr($id, 2);
Ce code est horrible: il crée un fichier temporaire sur le FS et le supprime, en conservant que seul l'unique partie de la chaîne.
Est-il une meilleure façon de le faire, de préférence, sans dépendances externes?
Merci beaucoup!
source d'informationauteur pbh101
Vous devez vous connecter pour publier un commentaire.
Obtient un préfixe identifiant unique basé sur le courant de temps en microsecondes.
Depuis deux uniqid() et rand() sont des fonctions basée sur l'heure actuelle, rand() ajoute pratiquement pas d'entropie, depuis le temps va changer seulement une petite quantité entre les appels.
Aussi longtemps que vous utilisez le
more_entropy
option, vous ne devriez jamais avoir une collision à l'intérieur d'un seul serveur. Si vous utilisez le clustering, assurez-vous d'inclure un préfixe qui diffère entre les serveurs.uniqid() est ce que vous cherchez dans la plupart des situations pratiques.
Vous pouvez la rendre encore plus "uniq" par l'ajout d'un grand nombre aléatoire après.