uniqid

(PHP 4, PHP 5)

uniqidГенерирует уникальный ID

Описание

string uniqid ([ string $prefix = "" [, bool $more_entropy = false ]] )

Получает уникальный идентификатор с префиксом, основанный на текущем времени в микросекундах.

Список параметров

prefix

Может быть полезно, к примеру, если идентификаторы генерируются одновременно на нескольких хостах и генерация идентификаторы производится в одну и ту же микросекунду.

С пустым параметром prefix, возвращаемая строка будет длиной в 13 символов. Если параметр more_entropy равен TRUE, то строка буде длиной в 23 символа.

more_entropy

Если равен TRUE, то функция uniqid() добавит дополнительную энтропию (используя комбинированный линейный конгруэнтный генератор) в конце возвращаемого значения, что увеличивает вероятность уникальности результата.

Возвращаемые значения

Возвращает уникальный идентификатор в виде строки (string).

Примеры

Пример #1 Пример использования uniqid()

<?php
/* Уникальный id, например: 4b3403665fea6 */
printf("uniqid(): %s\r\n"uniqid());

/* Префикс к уникальному id можно добавить одним
 * из следующих способов:
 *
 * $uniqid = $prefix . uniqid();
 * $uniqid = uniqid($prefix);
 */
printf("uniqid('php_'): %s\r\n"uniqid('php_'));

/* Также можно активировать параметр большей энтропии, который
 * требуется на некоторых системах, таких как Cygwin. Таким образом
 * функция uniqid() сгенерирует значение: 4b340550242239.64159797
 */
printf("uniqid('', true): %s\r\n"uniqid(''true));
?>

Список изменений

Версия Описание
5.0.0 Параметр prefix был сделан необязательным.
4.3.1 Был увеличен предел в 114 символов длины параметра prefix.

Примечания

Предостережение

Эта функция не генерирует защищенные криптографически токены, по сути, не передается каких-либо дополнительных параметров и возвращаемое значение мало чем отличается от возвращаемого функцией microtime(). Если необходимо сгенерировать криптографически защищенные токены, то нужно использовать функцию openssl_random_pseudo_bytes().

Замечание:

В Cygwin, параметр more_entropy должен быть задан как TRUE для работы этой функции.

Коментарии

Just to note this function is fairly slow, and can bring your script to a crawl if it is in a loop. Strangely if you run it as uniqid('', true) it runs much more quickly
2007-05-17 12:34:16
http://php5.kiev.ua/manual/ru/function.uniqid.html

    Поддержать сайт на родительском проекте КГБ