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
(PHP 4, PHP 5, PHP 7, PHP 8)
uniqid — Генерує унікальний ID
Отримує унікальний ідентифікатор з префіксом заснованим на поточному часі в мікросекундах.
Ця функція не створює випадкових непередбачуваних рядків. Вона не повинна використовуватись з метою безпеки. Користуйтесь криптографічними безпечними функціями/генераторами та криптографічними хеш-функціями, що створюють непередбачувані безпечні ID.
prefix
Може бути корисною, наприклад, якщо ви генеруєте ідентифікатор одночасно на декількох хостах, які можуть згенерувати точно такий же ідентифікатор в одну й ту ж секунду.
З пустим префіксом (prefix
), повертається рядок
довжиною 13 символів. Якщо параметр more_entropy
встановлено в true
, буде повертатись рядок довжиною 23 символи.
more_entropy
Якщо встановлено в true
, uniqid() буде додавати
ентропію (за допомогою комбінованих лінійних конгруентних
генераторів) в кінці значення, яке повертається, тим самим збільшуючи
ймовірність унікального результата.
Повертає унікальний ідентифікатор, з типом "рядок".
Приклад #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_'));
/* Ми також можемо активувати параметр more_entropy, який вимагається на деяких
* системах, таких як Cygwin. В цьому прикладі uniqid()
* генерується унікальний ID, схожий на: 4b340550242239.64159797
*/
printf("uniqid('', true): %s\r\n", uniqid('', true));
?>
Ця функція не генерує криптографічні безпечні мітки, та без передачі їй додаткових параметрів, повертає значення, яке не багато чим відрізняється від 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