Реклама на сайте Advertise with us

А есть PHP скриптюля который переиминовывает папки на сервер

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

Гауляйтор Курска

С нами с 08.10.03
Сообщения: 20852
Рейтинг: 473

Ссылка на сообщениеДобавлено: 22/03/08 в 01:53       Ответить с цитатойцитата 

например есть папки 01,02,03 и т.п. залить например скриптик и он их раз и переиминовал 01 в 03, 05 в 06 на типо random rename, т.е. перемешал как калоду карт?

VIP билеты на "Огонёк" и приватный вечер с Филипом Киркоровым.

-1
 

« ... full on ... »

С нами с 17.03.07
Сообщения: 670
Рейтинг: 1686

Ссылка на сообщениеДобавлено: 22/03/08 в 06:57       Ответить с цитатойцитата 

Можно примерно так (заменяет только на числовые имена):
Код:
<?php

function randomize_dir_list($dir_name)
{
   if (is_dir($dir_name))
   {
      $file_arr = array();
      $handle = opendir($dir_name);
      while(false !== ($entry = readdir($handle)))
       {
         $cur_name = $dir_name . "/" . $entry;
          if ($entry != "." && $entry != ".." && is_dir($cur_name))
         {
            $new_name = $dir_name . "/" . "0" . mt_rand(1, 999);
            if(rename($cur_name, $new_name) !== false)
            {
               echo "$cur_name -> $new_name<br>";
            }
          }
       }
       closedir($handle);
   }
   else
   {
      return false;
   }
    return $file_arr;
}

randomize_dir_list(".");

?>

8
 



С нами с 15.08.07
Сообщения: 203
Рейтинг: 321

Ссылка на сообщениеДобавлено: 22/03/08 в 07:47       Ответить с цитатойцитата 

чуток не коректно будет работать данный скрипт

надо ещё проверку, на наличие папки, на которое переименновываем

а то оно или перезатрёт, или не переименует

8
 



С нами с 01.03.06
Сообщения: 629
Рейтинг: 620

Ссылка на сообщениеДобавлено: 22/03/08 в 10:20       Ответить с цитатойцитата 

geCTP писал:

надо ещё проверку, на наличие папки, на которое переименновываем

вы похоже оба с ADSenex - бросаетесь отвечать, не прочитав условие...
ваш алгоритм переименует все так, что потом хозяин и поисковик будет эти папки еще долго искать.
суть не в переименовании, а в перемешивании - т.е. обмене контента папок (эт если изнутри папки смотреть icon_smile.gif ).
по поводу сабжа - наврядли у кого скриптюля есть - но любой пионер за червонец напишет с радостью (только проверить предварительно icon_smile.gif )

а если папок не много и ресурсов не жалко или просто хочется выпендренутся, то их можно хтацессом перемешивать внаглую icon_smile.gif а можно тоже самое и пыхом - перемешивать на лету - не меняя реального расположения огурцов в банке.

8
 

« ... full on ... »

С нами с 17.03.07
Сообщения: 670
Рейтинг: 1686

Ссылка на сообщениеДобавлено: 22/03/08 в 15:58       Ответить с цитатойцитата 

geCTP:
Согласен, можно сделать while, который будет пытаться пока не переименует корректно. Но идея, в общем, понятна, я думаю, это всё же не готовое решение. И функция не перезтрёт ничего, в крайнем случае не переименует - это да.

Heavy:
Хм... Это кому как, типо random rename и обмен контента папок вещи достаточно разные, тут скорее ТС нужно быть более конкретным.

8
 



С нами с 19.10.05
Сообщения: 351
Рейтинг: 755

Ссылка на сообщениеДобавлено: 22/03/08 в 17:52       Ответить с цитатойцитата 

Код:
<?php
$dir=opendir('.');
$mas=array();
while (($file = readdir($dir)) !== false) {
if (is_dir($file) && !eregi("^(\.|\.\.)$",$file)){$mas[]=$file;};
}
$mas1=$mas;shuffle($mas1);
for($i=0;$i<count($mas);$i++){
$tmp=md5(time());
if ($mas[$i]==$mas1[$i]){continue;}
   if (rename($mas[$i],$tmp)){
           if (rename($mas1[$i],$mas[$i])){
              if (rename($tmp,$mas1[$i])){echo $mas1[$i]."<=>".$mas[$i]."<br>";}
         }};
}
?>

Перемешивает все папки в текущей директории!
Если слабо перемешает. можеш запускать столько раз пока неполучиш нужного результата!

8
 



С нами с 01.03.06
Сообщения: 629
Рейтинг: 620

Ссылка на сообщениеДобавлено: 22/03/08 в 19:20       Ответить с цитатойцитата 

-=Faraon=- писал:

Перемешивает все папки в текущей директории!


скрипт работать будет, но он делает лишние телодвижения - и может переименовывать одни и теже папки по несколько раз icon_smile.gif так что вставлю свои пять копеек и немного упрощу/облегчу его ;)

Код:

<?php
$dirs = glob('*', GLOB_ONLYDIR);
shuffle( $dirs );
if (count($dirs)%2) $dirs[]=$dirs[0];
$dt=md5(time());
while ( ($d1=array_shift($dirs)) && ($d2=array_shift($dirs)) ) {
    if ( rename($d1,$dt) &&
         rename($d2,$d1) &&
         rename($dt,$d2) ) {
        echo $d1.'<=>'.$d2.'<br />';
    }
}
?>

8
 

Гауляйтор Курска

С нами с 08.10.03
Сообщения: 20852
Рейтинг: 473

Ссылка на сообщениеДобавлено: 23/03/08 в 06:41       Ответить с цитатойцитата 

heavy, то что доктор прописал. всем спасибо.

VIP билеты на "Огонёк" и приватный вечер с Филипом Киркоровым.

-1
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »