Índice

Generar un identificador único

En ciertas situaciones, puede ser necesario generar identificadores únicos.

PHP ofrece la función uniqid para generar identificadores únicos.

Sintaxis

cadena uniqid()([cadena prefijo [, booleano más_único]])

prefijo

Prefijo del identificador. Ponga una cadena vacía o no ponga nada si no desea prefijo.

más_único

Si este parámetro se establece en TRUE, se añaden datos suplementarios al final del valor devuelto para obtener un identificador más largo y más difícilmente identificable.

La función uniqid devuelve una cadena de trece caracteres o veintitrés si el parámetro más_único se establece en TRUE (sin contar el prefijo), calculado a partir de la hora actual en microsegundos.

Ejemplo

<?php 
echo uniqid(),’<br />’; 
echo uniqid(),’<br />’; 
echo uniqid(’abc’),’<br />’; 
echo uniqid(’’,TRUE) ,’<br />’; 
?>

Resultado

571e1fc4820b7 
571e1fc48210b 
abc571e1fc482166 
571e1fc48216a3.82726790

Este ejemplo muestra que el identificador generado es realmente único, aunque no haya gran diferencia entre dos llamadas sucesivas. Así, el identificador generado puede considerarse insuficientemente aleatorio y, en cierto sentido, determinista.

Una técnica clásica consiste en utilizar un hash con el identificador generado. La función md5 permite hacerlo fácilmente ...