Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Замена файлов на сервере. Из каталога в католог
цитата
05/08/08 в 12:32
 10pa
Нужно взять из паки [1] случайным образом несколько файлов (допустим 3 штуки) и скопировать их в папку [2] с именами 1.jpg, 2.jpg, 3.jpg
Файлов в исходной папке, откуда будут браться, около 200-400..
Эту процедуру надо повторять раза 2 за час.
Т.е. задача - чтобы в папке [2] файлы 1.jpg, 2.jpg, 3.jpg постоянно изменялись..
Это делается с целью обновления содержимого статических (html) документов.
Всем зараннее спасибо.
цитата
05/08/08 в 13:33
 Corex
Код:
<?php

$files_to_move = 3; // сколько файлов копировать
$files_from_dir = '.'; // откуда копировать
$files_to_dir = './copy'; // куда копировать

function get_files($folder)
{
   $result = array();
   if ($handle = opendir($folder))
   {
      while (false !== ($file = readdir($handle)))
      {
         if ($file != "." && $file != ".." && !is_dir($folder."/".$file))
         {
            $result[] = $folder."/".$file;
         }
      }
   }
   closedir($handle);
   return $result;
}

$files = get_files($files_from_dir);
for($i=1; $i<=$files_to_move; $i++)
{
   $index = mt_rand(0, count($files)-1);
   copy($files[$index], $files_to_dir.'/'.$i.".jpg");
   unset($files[$index]);
   $files = array_merge($files, array());
}

?>


И на крон два раза в час файло с этим скриптом.
цитата
05/08/08 в 14:21
 localhost
примерно так
Код:

<?php

$files=glob("/path/*.jpg");

$n=3; #количество файлов

while($n>0) {

  $u=array_rand($files);
  copy($files[$u],"/path/tocopy/{$n}.jpg");
  unset($files[$u]); # исключить повторный выбор  того же файла
  $n--;
}



примерно так где-то
цитата
05/08/08 в 14:43
 Corex
localhost:
Код:
$files=glob("/path/*.jpg");

Пиздатая тема, даже не знал про такую, зачёт!
цитата
05/08/08 в 14:59
 10pa
Corex
прикрутил твой скрипт - то что надо. Спасибо
----------------------
localhost
думаю что папка будет пополняться, поэтому вероятность повтора мала. и тебе спасибо твой скрипт тоже попробую
цитата
05/08/08 в 15:50
 Lamagro
localhost писал:
Код:
<?php
$files=glob("/path/*.jpg");
$n=3; #количество файлов
while($n>0) {
  $u=array_rand($files);
  copy($files[$u],"/path/tocopy/{$n}.jpg");
  unset($files[$u]); # исключить повторный выбор  того же файла
  $n--;
}

Оффтопик: красиво


Эта страница в полной версии