Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Насколько уникален uniqid()?


Автор: Psytodelist 11.6.2011, 01:44
Насколько уникален uniqid()?
Он миллисекунды берет хоть не относительно сегодняшнего дня,
а относительно какого-то дня 1970-го года?
Т.е. сколько не вызывай эту функцию, то результат будет всегда разным?
Или есть вероятность повтора? Если в одну и ту же миллисекунду придет
заказ, то он не будет уникальным... префикс какой-то ставить чтоли?

Автор: Shogun 11.6.2011, 02:43
http://php.su/functions/?uniqid

Советуют $token = md5(uniqid(rand(), true)); - и будет счастье

Автор: Psytodelist 11.6.2011, 07:44
Shogun, счастье - это отсутствие вероятности повтора одного и того же id?  smile 
Позабыл я комбинаторику и теорию вероятности, однако...  smile 

Автор: Shogun 11.6.2011, 12:22
Цитата(Psytodelist @  11.6.2011,  07:44 Найти цитируемый пост)
Shogun, счастье - это отсутствие вероятности повтора одного и того же id?  smile 
Позабыл я комбинаторику и теорию вероятности, однако...  smile  


 smile  Да вроде норм вариант, тут ведь еще префикс да и второй параметр в true то что добавляет уникальности, так что шанс повтора id мягко говоря очень очень мал.

Автор: Psytodelist 11.6.2011, 20:18
Shogun, спасибо!

Автор: Psytodelist 12.6.2011, 03:06
Если автоинкремент может быть практически неисчерпаем...
Меня терзают сомнения насчет ограниченности уникальности предложенного вами метода.
http://www.webmath.ru/web/prog21_1.php?k=15&n=35&schet=1

+ вероятность повтора зависит от количества уже созданных элементов.

 smile

Добавлено через 13 минут и 51 секунду
короче - задача такая. Юзеры грузят кучу фоток для фотопечати в одну папку мне на сервер.
Если в день мне загружают 1000 фоток, то есть большая вероятность за год получить
повторы по уникайди(), который используется в качестве имени файла.
проверять существующие имена файлов и делать подбор нового весьма не хочется.

вопрос: будут ли повторы? есть математики на этом форуме?
 я мог бы лепить префиксом старое название файла, но это крайне нежелательно

Автор: Psytodelist 12.6.2011, 03:47
короче прописал создание папок по дню, но тема все-равно актуальная

Автор: srt 12.6.2011, 08:22
добавь таблицу в базу:
столбцы - idcn nida nidb
idcn - auto_increment
два вторых - ид чего угодно ( для ориентации :О) )
idcn всегда будет уникален smile

Автор: Psytodelist 12.6.2011, 22:00
Я уже тоже до этого додумался, спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)