| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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? Позабыл я комбинаторику и теорию вероятности, однако... |
| Автор: 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 + вероятность повтора зависит от количества уже созданных элементов. Добавлено через 13 минут и 51 секунду короче - задача такая. Юзеры грузят кучу фоток для фотопечати в одну папку мне на сервер. Если в день мне загружают 1000 фоток, то есть большая вероятность за год получить повторы по уникайди(), который используется в качестве имени файла. проверять существующие имена файлов и делать подбор нового весьма не хочется. вопрос: будут ли повторы? есть математики на этом форуме? я мог бы лепить префиксом старое название файла, но это крайне нежелательно |
| Автор: Psytodelist 12.6.2011, 03:47 |
| короче прописал создание папок по дню, но тема все-равно актуальная |
| Автор: srt 12.6.2011, 08:22 |
| добавь таблицу в базу: столбцы - idcn nida nidb idcn - auto_increment два вторых - ид чего угодно ( для ориентации :О) ) idcn всегда будет уникален |
| Автор: Psytodelist 12.6.2011, 22:00 |
| Я уже тоже до этого додумался, спасибо. |