(PHP 4, PHP 5, PHP 7, PHP 8)
uniqid — Génère un identifiant unique
Description
uniqid(string
$prefix = "", bool
$more_entropy =
false): string
Attention
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.
Avertissement
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é.
Liste de paramètres
-
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.
Valeurs de retour
Retourne un identifiant unique basé sur l'horodatage, sous la forme d'une chaîne de caractères.
Avertissement
Cette fonction tente de créer un identifiant unique, mais l'unicité
de la valeur de retour n'est pas garantie à 100%.
Exemples
Exemple #1 Exemple avec uniqid()
<?php
/* Un identifiant unique, comme : 4b3403665fea6 */
printf("uniqid(): %s\r\n", uniqid());
/* Nous pouvons également préfixer l'identifiant unique,
* ce qui revient à :
*
* $uniqid = $prefix . uniqid();
* $uniqid = uniqid($prefix);
*/
printf("uniqid('php_'): %s\r\n", uniqid('php_'));
/* Nous pouvons aussi activer le paramètre more_entropy,
* requis par quelques systèmes, comme Cygwin. Ceci fera que
* uniqid() produira une valeur comme : 4b340550242239.64159797
*/
printf("uniqid('', true): %s\r\n", uniqid('', true));
?>
Notes
Note:
Sous Cygwin, le paramètre more_entropy doit être
passé à true pour que cette fonction fonctionne.
Voir aussi
- random_bytes() - Récupère des octets aléatoires cryptographiquement sécurisés