Вот никак не могу осилить скрипт массовой переименовки файлов-не пойму в чем проблема.пользуюсь таким кодом.файл переименовщик лежит рядом с файлами в той же директории
<?php
$mdir='/'; //пaпкa, в кoтopoй лeжaт фaйлы
$r1='Mandingo'; //чтo мeняeм
$r2='test'; //нa чтo
//-- её величество Фyнкция --//
function mass_rename($dir,$r1,$r2) {
$opdir=opendir($dir);
while ($a=readdir($opdir)) {
if ($a=='.' or $a=='..') continue;
if (is_file($dir.'/'.$a)) {
$b=str_replace($r1,$r2,$a);
rename($dir.'/'.$a,$dir.'/'.$b); }
else {
mass_rename($dir.'/'.$a,$r1,$r2); } }
closedir($opdir);
return $dir; }
//-- применяю --//
mass_rename($mdir,$r1,$r2);
echo 'Done';
?>
функцию взял на 4мас.ру 
спасибо,помогло.а если файл в подпапке находится,как правильно путь написать.а то я мучался ничего не помогало.писать путь относительно php файла переименовщика?
16 Окт 2010, 23:59У меня теперь не только в этой папке файлы переименовались но и на всем хосте...ппц
17 Окт 2010, 2:06glob( '/абсолютный путь/*.* , GLOB_BRACE );
и никаие пляски с проверками на уход выще не нужны
<?php
$mdir='files1/'; //пaпкa, в кoтopoй лeжaт фaйлы
$name = 'a'; //чтo мeняeм
$new = 'A'; //нa чтo
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($mdir) );
foreach ($files as $element){
$patch = pathinfo($element);
$NewName = str_replace($name, $new, $patch['basename']);
rename($element, $patch['dirname'].'/'.$NewName);
}
?>
suhonok, а если файлы лежат в той же папке то писать имя папки или оставить просто / ? Я уже побаиваюсь пути наугад ставить тк.боюсь груз потом повредить у меня 5гигов все в ручную лил...хорошо хоть в прошлый раз скрипт переименовать только видосы успел а не игры и проги гг)
18 Окт 2010, 16:35