array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'pt_BR', ), 'this' => array ( 0 => 'function.uniqid.php', 1 => 'uniqid', ), 'up' => array ( 0 => 'ref.misc.php', 1 => 'Misc. Funções', ), 'prev' => array ( 0 => 'function.time-sleep-until.php', 1 => 'time_sleep_until', ), 'next' => array ( 0 => 'function.unpack.php', 1 => 'unpack', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'pt_BR', 'path' => 'reference/misc/functions/uniqid.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
uniqid — Gera um ID único
Obtém um identificador prefixado único baseado no tempo atual em microsegundos.
Esta função não gera valores criptograficamente seguros e não deve ser usada para propósitos criptográficos ou fins que exijam que os valores retornados sejam impossíveis de adivinhar.
Se aleatoriedade criptograficamente segura for necessária, a classe Random\Randomizer pode ser usada com o mecanismo Random\Engine\Secure. Para casos de uso simples, as funções random_int() e random_bytes() fornecem uma API conveniente e segura que é garantida pelo CSPRNG do sistema operacional.
Esta função não garante a repetição do valor
retornado. Isso ocorre porque muitos sistemas ajustam seus relógios utilizando o NTP ou similares
de forma que o horário do sistema é alterado constantemente. Portanto é possível que
esta função não retorna um ID único mesmo no nível
do processo ou thread. Utilize Use more_entropy
para
aumentar as chances de não repetição.
prefix
Útil para gerar identificadores simultaneamente em vários servidores, que poderiam gerar o mesmo identificador no mesmo microsegundo.
Com um prefix
vazio, a string retornada terá
13 caracteres. Se more_entropy
for
true
, a string terá 23 caracteres.
more_entropy
Se informado como true
, uniqid() irá adicionar
entropia (utilizando um gerador linear congruente) ao final do
do valor retornado, o que aumentará as chances que o resultado seja
globalmente único.
Retorna um identificador único baseado no timestamp, como uma string.
Esta função tenta criar um identificador único, mas não garante a unicidade global em 100% dos casos.
Exemplo #1 uniqid() Example
<?php
/* Um identificador, por exemplo: 4b3403665fea6 */
printf("uniqid(): %s\r\n", uniqid());
/* Também pode prefixar o identificador, que é o mesmo que
* fazer:
*
* $uniqid = $prefix . uniqid();
* $uniqid = uniqid($prefix);
*/
printf("uniqid('php_'): %s\r\n", uniqid('php_'));
/* Pode-se também ativar o parâmetro more_entropy, o que
* é exigido em alguns sistemas, como o Cygwin. Isto faz que uniqid()
* produza um valor como: 4b340550242239.64159797
*/
printf("uniqid('', true): %s\r\n", uniqid('', true));
?>
Nota:
Sob o Cygwin, o parâmetro
more_entropy
deve ser configurado comotrue
para que essa função funcione.