Mad_Man

Mad_Man
Рейтинг
162
Регистрация
10.11.2008
Интересы
Рыбалка
Born USSR
Solmyr:
Вы пробовали, реально берет больше чем 128, или просто теория? Версия PHP какая?

Никогда не было какого-то идиотского лимита в 128M.

gims:
Что стоит написать парсер который пробежит по сайту и выкачает фотки?

А кто-то осилит написать парсер, который качнёт весь пастебин или все фоточки втентакле? Фотки\паста доступны всем - качайте\смотрите на здоровье. Но только правила игры неизвестны и невозможно определить местонахождение другого элемента в цепи. Вы сможете дотянуться только до того, что расшарено самими владельцами.

Выбор алгоритма зависит от цели его использования.

LEOnidUKG:
Кто-то машину времени изобрёл и может возвращаться назад и пускать time() по кругу? Ясно... удаляюсь.

С каких пор вызов timestamp'a дважды подряд делает одну и ту же секунду уникальной?

gims:
На мой взгляд это единственный нормальный вариант. Сделать поле автоинкремент, брать его значение и преобразовать из десятичной системы в 62-ричную. Значение будет коротким и 100% уникальным.

... и предсказуемым. Довольно удобно выкачивать чужие фотки\доки и прочий хлам с файлопомойки, которая инкрементит адрес нового файла.

LEOnidUKG:
Ой умный.... ГРАМОТНЫЙ то какой.

Рак головного мозга не позволяет понять, что без учёта использованных значений нельзя быть уверенным в том, что значение уникально? Не беда - быть глупым не смертельно сейчас.

SeVlad:
Да хоть 100 (даже самых мелких )! Всё равно на загрузку\генерацию_имени уйдет больше времени, чем 0,01сек на каждого. (Для особо параноидальных случаев можно и с точностью до 0,001 сек генерировать )

Машинное время измеряется в тактах, а не в секундах. Более того, в операционных системах, которые работают в Protected Mode (для вас - все ОСи) используются окна времени на каждую задачу. Никакой точности здесь нету.

Для велосипедистов и прочих любителей инкремента на единицу:

1. Генерируем пул (числа, строки, по барабану что) значений, которые нам могут быть доступны для использования. Проще всего задавать лимиты численных значений (от 0 до 1048576, например). Также проще всего рассматривать пул в виде разреженной матрицы (разреженная матрица - это матрица размером папиццот x дохрена, где хранятся только ненулевые значения ячеек для экономии памяти).

2. С помощью mt_rand и прочих псевдослучайных радостей ломимся к случайному элементу пула, перебираем их пока не наткнёмся на свободный.

3. Резервируем элемент.

4. Как только пул заполняется на 60% (после этого вероятность попадания к свободному элементу падает довольно быстро) - генерируем новый пул.

* Для параллельных систем на этапе (3) реализуем мьютекс на доступ к участку резервирования свободного элемента.

---------- Добавлено 07.05.2014 в 21:33 ----------

LEOnidUKG:
я вроде со временем уже приводил вариант.

time().mt_rand(100000,999999).mt_rand(0,100);
никогда не повторится

Дальше хоть в MD5/SHA1

<?

$arr = null;

for ($i = 0; $i < 15000; $i++)
{
$arr[] = time().mt_rand(100000,999999).mt_rand(0,100);
}

echo count($arr);
echo count(array_unique($arr));


15000
14994

Безграмотность зашкаливает.

LEOnidUKG:
Блин и подходят же пароли

Geers:
Никаких процедур не делал по сохранению паролей, новый ПК, это первый вход на Mail.ru, только что, последний раз был там месяцок назад на старом пк, это абсолютно новый пк.

Флэш отрубите и попробуйте авторизоваться повторно.

Jaf4:
главное, чтобы работа доход приносила

Прибыль, а не доход.

Всего: 4397