Гауляйтор Курска
С нами с 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(".");
?> |
|
|
|
|
С нами с 15.08.07
Сообщения: 203
Рейтинг: 321
|
Добавлено: 22/03/08 в 07:47 |
чуток не коректно будет работать данный скрипт
надо ещё проверку, на наличие папки, на которое переименновываем
а то оно или перезатрёт, или не переименует
|
|
|
|
С нами с 01.03.06
Сообщения: 629
Рейтинг: 620
|
Добавлено: 22/03/08 в 10:20 |
geCTP писал: |
надо ещё проверку, на наличие папки, на которое переименновываем |
вы похоже оба с ADSenex - бросаетесь отвечать, не прочитав условие...
ваш алгоритм переименует все так, что потом хозяин и поисковик будет эти папки еще долго искать.
суть не в переименовании, а в перемешивании - т.е. обмене контента папок (эт если изнутри папки смотреть ).
по поводу сабжа - наврядли у кого скриптюля есть - но любой пионер за червонец напишет с радостью (только проверить предварительно )
а если папок не много и ресурсов не жалко или просто хочется выпендренутся, то их можно хтацессом перемешивать внаглую а можно тоже самое и пыхом - перемешивать на лету - не меняя реального расположения огурцов в банке.
|
|
|
|
« ... full on ... »
С нами с 17.03.07
Сообщения: 670
Рейтинг: 1686
|
Добавлено: 22/03/08 в 15:58 |
geCTP:
Согласен, можно сделать while, который будет пытаться пока не переименует корректно. Но идея, в общем, понятна, я думаю, это всё же не готовое решение. И функция не перезтрёт ничего, в крайнем случае не переименует - это да.
Heavy:
Хм... Это кому как, типо random rename и обмен контента папок вещи достаточно разные, тут скорее ТС нужно быть более конкретным.
|
|
|
|
С нами с 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>";}
}};
}
?> |
Перемешивает все папки в текущей директории!
Если слабо перемешает. можеш запускать столько раз пока неполучиш нужного результата!
|
|
|
|
С нами с 01.03.06
Сообщения: 629
Рейтинг: 620
|
Добавлено: 22/03/08 в 19:20 |
-=Faraon=- писал: |
Перемешивает все папки в текущей директории! |
скрипт работать будет, но он делает лишние телодвижения - и может переименовывать одни и теже папки по несколько раз так что вставлю свои пять копеек и немного упрощу/облегчу его ;)
Код: |
<?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 />';
}
}
?>
|
|
|
|
|
Гауляйтор Курска
С нами с 08.10.03
Сообщения: 20852
Рейтинг: 473
|
Добавлено: 23/03/08 в 06:41 |
heavy, то что доктор прописал. всем спасибо.
|
|
VIP билеты на "Огонёк" и приватный вечер с Филипом Киркоровым.
|
-1
|
|
|