Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Генерация уникального имени файла
 
 автор: NIK   (16.02.2008 в 18:57)   письмо автору
 
 

Нужно сгенерить уникальные имена для файлов. они должно быть действительно уникальным, ибо файлы создаются по десятку другому и очень быстро. Раньше для этого использовал md5(uniqid(time())); - но вот сейчас получается что несколько разных файлов имеют одинаковые имена - грешу на эту конструкцию. Чем бы её заменить, чтобы уж наверняка?

   
 
 автор: ddhvvn   (16.02.2008 в 19:16)   письмо автору
 
   для: NIK   (16.02.2008 в 18:57)
 

Интересно, как это "одинаковые имена", если вы используете в кач-ве параметра время?

   
 
 автор: Evgen   (16.02.2008 в 19:28)   письмо автору
 
   для: ddhvvn   (16.02.2008 в 19:16)
 

Время - вещь не уникальная, особенно если два запроса потупают одномоменто...
Я тож это заметил!

   
 
 автор: morkovkin   (16.02.2008 в 19:36)   письмо автору
 
   для: Evgen   (16.02.2008 в 19:28)
 

К существующей конструкции добавить конструкцию, которая из определённых символов каждый раз выдаёт разный результат. Соединив, можно получить более совершенную генерилку названий для файлов.

   
 
 автор: NIK   (16.02.2008 в 19:36)   письмо автору
 
   для: ddhvvn   (16.02.2008 в 19:16)
 

я думаю вполне возможно, т.к. time() даёт точность до секунд, а за 1 секунду можно и несколько файлов успеть записать.

   
 
 автор: а-я   (16.02.2008 в 19:35)   письмо автору
 
   для: NIK   (16.02.2008 в 18:57)
 

может так?

<?
$filename 
md5(microtime(1).rand());
?>

   
 
 автор: ddhvvn   (16.02.2008 в 19:47)   письмо автору
 
   для: а-я   (16.02.2008 в 19:35)
 

=))) Мне сначала и показалось, что там микротайм! тока можно без (1)

   
 
 автор: Unkind   (16.02.2008 в 20:23)   письмо автору
 
   для: NIK   (16.02.2008 в 18:57)
 

tempnam()

   
 
 автор: AlexDIXI   (14.07.2008 в 10:58)   письмо автору
 
   для: Unkind   (16.02.2008 в 20:23)
 


<?php
$rand 
substr(md5(uniqid(rand(), true)), 0rand(713));

echo 
$rand;

?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования