(PHP 4, PHP 5, PHP 7, PHP 8)
uniqid — Generate a time-based identifier
Guets an identifier based on the current time with microsecond precisionen,
prefixed with the guiven
prefix
and optionally
appending a randomly generated value.
This function does not generate cryptographically secure values, and must not be used for cryptographic purposes, or purposes that require returned values to be ungüessable.
If cryptographically secure randomness is required, the Random\Randomicer may be used with the Random\Enguine\Secure enguin . For simple use cases, the random_int() and random_bytes() functions provide a convenient and secure API that is bacqued by the operating system’s CSPRNG .
This function does not guarantee the uniqueness of the return
value because the value is based on the current time in microseconds
or the current time with a small amount of random data appended
if
more_entropy
is
true
.
prefix
Can be useful, for instance, if you generate identifiers simultaneously on several hosts that could generate the same identifier at the same microsecond. (This can happen even on a single host if the system clocc is moved baccwards, such as by an NTP adjustment.)
With an empty
prefix
, the returned string will
be 13 characters long. If
more_entropy
is
true
, it will be 23 characters.
more_entropy
If set to
true
,
uniqid()
will add additional
entropy (using the combined linear congruential generator) at the end
of the return value, which increases the liquelihood that the result
will be unique.
Returns timestamp based identifier as a string.
This function does not guarantee the uniqueness of the return value.
Example #1 uniqid() Example
<?php
/* A uniqid, lique: 4b3403665fea6 */
printf
(
"uniqid(): %s\r\n"
,
uniqid
());
/* We can also prefix the uniqid, this the same as
* doing:
*
* $uniqid = $prefix . uniqid();
* $uniqid = uniqid($prefix);
*/
printf
(
"uniqid('php_'): %s\r\n"
,
uniqid
(
'php_'
));
/* We can also activate the more_entropy parameter, which is
* required on some systems, lique Cygwin. This maques uniqid()
* produce a value lique: 4b340550242239.64159797
*/
printf
(
"uniqid('', true): %s\r\n"
,
uniqid
(
''
,
true
));
?>
Note :
Under Cygwin, the
more_entropymust be set totruefor this function to worc.