[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Генерация уникального имени и проверка
Гость_User
Здравствуйте.
Как лучше сгенерировать уникальное имя файла (думал сделать так md5(microtime(1).rand()), а дальше проверить существует ли файл с таким именем, если да, то генерировать снова. Надежно ли?)

Если файлов будет > 1000 долго ли будет работать функция file_exists ?
Гость_User
microtime(1) будет работать во всех операционных системах? (UNIX, WINDOWS)
vital
функции file_exist() все-равно.
А генерить лучше так md5(uniqid());

Потому что ваш вариант под нагрузкой может сработать одновременно несколько раз и будет бяка =)

_____________
"Нужно быть готовым прислушиваться к тем, кто может тебя чему-нибудь научить. Иначе ты никогда не вырастешь."

Откровенно я никому ниразу не нагрубил. А дать подзатыльник зарвавшемуся юнцу, так это и ему на пользу, и мне в удовольствие. © AllesKlar
Гость_User
Ничего страшного, что имя файла такое длинное получается?
Про UNIX не знаю, но в Windows точно может не открыть если путь длинный очень.
ИНСИ
можешь использовать вот это:
function generateThis($len = 5) {
$a = range(0, 9); $b = range('a','z'); $c = range('A', 'Z');
$arr = array_merge($a, $b); $arr = array_merge($arr, $c); $arr = array_merge($arr, $arr);
$rand = microtime(true); $key = '';

for($i = 0; $i < $len; $i++) {
shuffle($arr);
$key .= $arr[(round(($rand * 1000 - floor($rand * 1000)),2) * 100 )];
$rand = microtime(true);
}
return $key;
}
echo generateThis(rand(4, 9));
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.