uniqid

Generate a time-based identifier

&reftitle.description; `string` `uniqid` `string` `prefix`"" `bool` `more_entropy`&false;

Gets an identifier based on the current time with microsecond precision, prefixed with the given `prefix` and optionally appending a randomly generated value.

&caution.cryptographically-insecure;

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;.

&reftitle.parameters;

`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 clock is moved backwards, 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 likelihood that the result will be unique.

&reftitle.returnvalues;

Returns timestamp based identifier as a string.

This function does not guarantee the uniqueness of the return value.

&reftitle.examples;

### `uniqid` Example

    <?php
    /* A uniqid, like: 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, like Cygwin. This makes uniqid()
     * produce a value like: 4b340550242239.64159797
     */
    printf("uniqid('', true): %s\r\n", uniqid('', true));
    ?>

&reftitle.notes;

Under Cygwin, the `more_entropy` must be set to &true; for this function to work.

&reftitle.seealso;

- `random_bytes`