Just to note this function is fairly slow, and can bring your script to a crawl if it is in a loop. Strangely if you run it as uniqid('', true) it runs much more quickly
(PHP 4, PHP 5, PHP 7, PHP 8)
uniqid — Generar un ID único
Obtiene un identificador único prefijado basado en la hora actual en microsegundos.
Esta función no crea valores de tipo string aleatorios ni impredecibles. Esta función no debe usarse con propósitos de seguridad. Use una función o generador aleatorios criptográficamente seguros y funciones hash criptográficamente seguras para crear ID de seguridad impredecibles.
prefix
Puede ser útil, por ejemplo, si se generan identificadores simultáneamente en varios hosts que podrían, por casualidad, generar el identificador en el mismo microsegundo.
Con un prefix
vacío, el string devuelto tendrá
una longitud de 13 caracteres. Si more_entropy
es
true
, tendrá 23 caracteres.
more_entropy
Si está establecido a true
, uniqid() añadirá entropía
adicional (usando el generador congruente lineal combinado) al final
del valor retornado, lo que incrementará la posibilidad de que el resultado
sea único.
Devuelve el identificador único, como string.
Ejemplo #1 Ejemplo de uniqid()
<?php
/* Un id único, como: 4b3403665fea6 */
printf("uniqid(): %s\r\n", uniqid());
/* También podemos prefijar el id único, esto es lo mismo que
* hacer:
*
* $uniqid = $prefijo . uniqid();
* $uniqid = uniqid($prefijo);
*/
printf("uniqid('php_'): %s\r\n", uniqid('php_'));
/* También podemos activar el parámetro more_entropy, que es
* necesario en algunos sistemas, como Cygwin. Esto hace que uniqid()
* produzca un valor como: 4b340550242239.64159797
*/
printf("uniqid('', true): %s\r\n", uniqid('', true));
?>
Esta función no genera tokens criptográficamente seguros, de hecho, el valor devuelto, sin pasar ningún parámetro adicional, es ligeramente diferente del de microtime(). Si fuera necesario generar tokens criptográficamente seguros utilice openssl_random_pseudo_bytes().
Nota:
Bajo Cygwin,
more_entropy
debe ser establecido atrue
para que esta función funcione.
Just to note this function is fairly slow, and can bring your script to a crawl if it is in a loop. Strangely if you run it as uniqid('', true) it runs much more quickly