uniqid - Generando una ID única en PHP
uniqid php w3schools (3)
Intento generar un ID único en php para almacenar contenido subido por usuarios en un FS sin conflictos. Estoy usando php, y por el momento este pequeño fragmento es responsable de generar el UID:
$id = tempnam (".", "");
unlink($id);
$id = substr($id, 2);
Este código es horrible: crea un archivo temporal en el FS y lo elimina, conservando solo la parte única relevante de la cadena generada.
¿Hay alguna forma mejor de hacerlo, más preferiblemente sin dependencias externas?
¡Muchas gracias!
uniqid () es lo que estás buscando en la mayoría de las situaciones prácticas.
Puede hacerlo aún más "uniq" agregando un gran número aleatorio después de él.
string uniqid ([ string $prefix [, bool $more_entropy ]] )
Obtiene un identificador único con prefijo basado en el tiempo actual en microsegundos.
USAGE: $id = uniqid(rand(), true);
Como uniqid () y rand () son funciones basadas en la hora actual, rand () casi no agrega entropía, ya que el tiempo cambiará solo una pequeña cantidad entre las llamadas respectivas.
Siempre que use la opción more_entropy
, nunca debería tener una colisión dentro de un único servidor. Si usa clustering, asegúrese de incluir un prefijo que difiera entre los servidores.