(PHP 4, PHP 5, PHP 7, PHP 8)
uniqid — Génère un identifiant unique
Génère un identifiant unique, préfixé, basé sur la date et heure courante en microsecondes.
Cette fonction ne génère pas de valeurs cryptographiquement sûres, et ne doit pas être utilisée à des fins cryptographiques, ou à des fins qui exigent que les valeurs renvoyées soient indéchiffrables.
Si de l'aléatoire cryptographiquement sûre est requis, le Random\Randomizer peut être utilisé avec le moteur Random\Engine\Secure. Pour des cas d'usage simple, les fonctions random_int() et random_bytes() fournissent une API pratique et sûre qui est qui est soutenu par le CSPRNG du système d'exploitation.
Cette fonction ne garantie pas l'unicité des valeurs de retour. Car la plupart des systèmes ajustent l'horloge système par NTP ou similaire; l'horloge système est modifiée constament. Par conséquent, il est possible que cette fonction ne retourne pas un ID unique pour le processus/thread. Utiliser more_entropy
pour augmenter la probabilité d'unicité.
prefix
Peut être utile, par exemple, pour identifier facilement différents hôtes, si vous générez simultanément des fichiers depuis plusieurs hôtes, à la même microseconde.
Sans prefix
(préfixe vide), la chaîne retournée fera 13 caractères. Si more_entropy
est à true
, elle fera 23 caractères.
more_entropy
Si le paramètre optionnel more_entropy
est true
, uniqid() ajoutera une entropie "combined LCG"
à la fin de la valeur retournée, ce qui augmente la probabilité de l'unicité du résultat.
Retourne un identifiant unique basé sur l'horodatage, sous la forme d'une chaîne de caractères.
Cette fonction tente de créer un identifiant unique, mais l'unicité de la valeur de retour n'est pas garantie à 100%.
Exemple #1 Exemple avec uniqid()
<?php
printf("uniqid(): %s\r\n", uniqid());
printf("uniqid('php_'): %s\r\n", uniqid('php_'));
printf("uniqid('', true): %s\r\n", uniqid('', true));
?>
Note:
Sous Cygwin, le paramètre
more_entropy
doit être passé àtrue
pour que cette fonction fonctionne.