$$$$$$$$$$
С нами с 05.05.05
Сообщения: 1014
Рейтинг: 479
|
Добавлено: 18/12/07 в 02:03 |
в директории куча папок
в каждой папке файлы jpg и mpg
нужно jpg файлы переименовать в 1.jpg,2.jpg,3.jpg... какое их там количество
и с mpg файлами сделать тоже самое...
т.е. просто их пронумеровать в логической последовательности (в папках они в этой последовательности стоят но имена их не нравятся)
|
|
|
|
С нами с 19.11.06
Сообщения: 2295
Рейтинг: 345
|
Добавлено: 18/12/07 в 03:42 |
Total Commander - Ctrl+M
групповое переименование работает и для фтп, в пределах одной папки
|
|
Строим Луна-парки с блэкджеком и шлюхами. Дорого.
|
0
|
|
|
легионер МММ
С нами с 18.04.03
Сообщения: 6239
Рейтинг: 786
|
Добавлено: 18/12/07 в 09:26 |
Ему на сервере надо.
Делаешь так
Код: | $path="path/to/files";
$ext="jpg"; // или "mpg";
$d = dir($path);
$count=1;
while (false !== ($entry = $d->read())) {
$tmp = explode(".",$entry);
if($tmp[1] == $ext)
{
rename ($path."/".$entry, $path."/".$count.".".$ext);
$count++;
}
}
$d->close(); |
может где ковычки пропустил, а так работать будет
|
|
|
|
$$$$$$$$$$
С нами с 05.05.05
Сообщения: 1014
Рейтинг: 479
|
Добавлено: 18/12/07 в 17:15 |
alt писал: | может где ковычки пропустил, а так работать будет |
спасибо большое! попробую :)
|
|
|
|
С нами с 18.08.04
Сообщения: 6376
Рейтинг: 4430
|
Добавлено: 18/12/07 в 17:40 |
у тебя в папки не залазит
|
|
|
|
$$$$$$$$$$
С нами с 05.05.05
Сообщения: 1014
Рейтинг: 479
|
Добавлено: 18/12/07 в 21:02 |
dDan писал: | у тебя в папки не залазит |
это сам уже... переименовывать как понятия не имел... смикалки не хватило :(
|
|
|
|
С нами с 11.06.03
Сообщения: 1266
Рейтинг: 950
|
Добавлено: 18/12/07 в 22:38 |
Сам-то сам, только очень внимательно с приведенным решением. В нем принципиальная ошибка.
Найдете сами ?
... Или я ошибаюсь...
|
|
|
|
$$$$$$$$$$
С нами с 05.05.05
Сообщения: 1014
Рейтинг: 479
|
Добавлено: 19/12/07 в 01:56 |
Sha писал: | Сам-то сам, только очень внимательно с приведенным решением. В нем принципиальная ошибка.
Найдете сами ?
... Или я ошибаюсь... |
у меня вот это
$count++;
почему-то срабатывало даже при лжи в if
но я тут помудрил и наклацал что всё так или иначе но работает.
|
|
|
|
легионер МММ
С нами с 18.04.03
Сообщения: 6239
Рейтинг: 786
|
Добавлено: 19/12/07 в 09:08 |
В папки точно не залазит это пример для 1 директории,
но... не сложно сделать и для многих папок
Итак, если папки лежат на 1 уровне (не вложенные)
то такое решение:
Выносим вышеприведенный код в функцию
И делаем так
Код: | <?
$path="path/to/dirs"; // путь к директории с папками
$ext="jpg"; // или "mpg";
$d = dir($path);
while (false !== ($entry = $d->read())) {
$tmp = explode(".",$entry);
if($entry != ".." && $entry != ".")
{
ren($path."/".$enrty,$ext);
}
}
$d->close();
function ren($path,$ext)
{
$d = dir($path);
$count=1;
while (false !== ($entry = $d->read())) {
$tmp = explode(".",$entry);
if($tmp[1] == $ext)
{
rename ($path."/".$entry, $path."/".$count.".".$ext);
$count++;
}
}
$d->close();
}
?> |
Но вот будут ли они пеперименнованны по порядку, это вопрос, т.к. их возможно надо будет сортировать еще по времи создания.
2Sha а где там принципиальная ошибка? очень интересно =)
|
|
|
|
С нами с 11.06.03
Сообщения: 1266
Рейтинг: 950
|
Добавлено: 19/12/07 в 22:49 |
alt писал: | 2Sha а где там принципиальная ошибка? очень интересно =) |
Мож я ошибся. Мож и нет ошибки, кроме проблем с файлами с двойным расширением. Типа abc.jpg.html
PS ну а рекурсию чего не реализовал ? Можно углУбить.
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |