Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Генератор случайного имени
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Генератор случайного имени

Страниц (1): [1]
 

1. kazmikro - 03 Мая, 2011 - 19:04:18 - перейти к сообщению
Допустим есть файл загруженный на сервер , как дать ему случайное название ? допустим adsad4q55q13 чё нить такое !!! )))
2. molchun201 - 03 Мая, 2011 - 19:10:46 - перейти к сообщению
md5()

можно регулярку написать и из неё уже рандомить имена
3. vlom - 03 Мая, 2011 - 19:11:19 - перейти к сообщению
используй md5 - получай ее из самога файла
4. Champion - 03 Мая, 2011 - 19:14:33 - перейти к сообщению
Не надо использовать md5 из самого файла. Если имеется в виду из имени файла, то имена файлов часто бывают не уникальными, а значит, что их хэши тоже. Если по содержимому файла, то это ресурсозатратная операция.
Есть функция uniqid() для генерации случайных вещей.
5. kazmikro - 03 Мая, 2011 - 19:16:41 - перейти к сообщению
ну например имя файла "photo" нуно обычный скрипт который будет генирировать случайное имя файла в случае если такое имя уже в базе есть md5 ? зачем ??? очень большое значение будет
6. vlom - 03 Мая, 2011 - 19:18:04 - перейти к сообщению
я имел не от имени файла а md5 по содержимому, да что-то о ресурсах не подумал
7. kazmikro - 03 Мая, 2011 - 19:23:38 - перейти к сообщению


или

PHP:
скопировать код в буфер обмена
  1.  
  2.  function random($length = 32) {
  3.      static $randStr = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
  4.      $rand = '';
  5.      for($i=0; $i<$length; $i++) {
  6.          $key = rand(0, strlen($randStr)-1);
  7.          $rand .= $randStr[$key];
  8.      }
  9.      return $rand;
  10.  }
  11.  echo random();
  12.  


Нашёл Радость Улыбка)))
8. EuGen - 03 Мая, 2011 - 19:24:13 - перейти к сообщению
$name = md5(uniqid(rand(),1));
Гораздо проще и быстрее.
9. kazmikro - 03 Мая, 2011 - 19:28:39 - перейти к сообщению
EuGen пишет:
$name = md5(uniqid(rand(),1));
Гораздо проще и быстрее.


Да ты прав, уже пробую
(Добавление)
о вот сразу ещё одна мини проблемка

вот кусочек кода

PHP:
скопировать код в буфер обмена
  1.  
  2. if($_FILES['filename']['size'] > 1024*1024*2)
  3. {
  4. echo "Максимальный размер фото 2 МБ";
  5. } else {
  6.  if(copy($_FILES['filename']['tmp_name'],"photos/{$_FILES['filename']['name']}"))
  7.  {
  8.     $photoname = $_FILES['filename']['name'];
  9.    
  10. /// Всовываем в базу данных
  11.  
  12. echo $photoname."<br>";
  13.  
  14.  
  15. }
  16. }
  17.  


В итоге мне выводит переменная photoname название файла с .форматом
Например PHOTO.JPG ну и тд
как зделать чтоб переменная выводила только PHOTO без .JPG чтоб я мог поставить

PHP:
скопировать код в буфер обмена
  1.  
  2. $photoname = md5(uniqid(rand(),1));
  3.  


и в итоге у меня чтоб получилось имя файла (сгенерированный + формат ) !
10. EuGen - 03 Мая, 2011 - 20:11:13 - перейти к сообщению
Можете применять и с расширением.
Или же взять все кроме расширения (до последней точки в имени)
11. kazmikro - 03 Мая, 2011 - 20:14:17 - перейти к сообщению
EuGen пишет:
Можете применять и с расширением.
Или же взять все кроме расширения (до последней точки в имени)


Можно пожалуйста пример
12. EuGen - 03 Мая, 2011 - 20:25:25 - перейти к сообщению
$name="PHOTO.NUMBER.ONE.JPG";
$cleaned_name=substr($name, 0, (int)strrpos('.', $name));
13. Haron - 03 Мая, 2011 - 22:15:25 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.         function generate_unique_id($len = false)
  2.         {
  3.                 $len ? $len : 16;
  4.                
  5.                 $arr = array
  6.                 (
  7.                                 'a','b','c','d','e','f',
  8.                                 'g','h','i','j','k','l',
  9.                                 'm','n','o','p','r','s',
  10.                                 't','u','v','x','y','z',
  11.                                 'A','B','C','D','E','F',
  12.                                 'G','H','I','J','K','L',
  13.                                 'M','N','O','P','R','S',
  14.                                 'T','U','V','X','Y','Z',
  15.                                 '1','2','3','4','5','6',
  16.                                 '7','8','9','0'
  17.                                 );
  18.                                 $code = "";
  19.                                 for($i = 0; $i < $len; $i++)
  20.                                 {
  21.                                         $index = rand(0, count($arr) - 1);
  22.                                         $code .= $arr[$index];
  23.                                 }
  24.                                 return $code;
  25.         }

 

Powered by ExBB FM 1.0 RC1