Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Переименование группы файлов в php
цитата
29/06/07 в 00:13
 MozovCJ
Открываем\читаем каталог, там следующее:
xxx8970.jpg
xxx9056.jpg
xxx9100.jpg
.................
Хочу чтоб стало соответсвенно
xxx01.jpg
xxx02.jpg
xxx03.jpg
то есть чтоб последовательность сохранить, но нумерацию изменить.
кто подскажет, перерыл php.net opendir readdir rename
никак немогу вкурить.
Направьте куда нить плиз ...
цитата
29/06/07 в 01:08
 xreload
1) для чего тебе нужно сохранить последовательность ?
2)
Цитата:

<?php
$dir = "/some/dir/";
$handler = opendir($dir);
$counter = 1;
while($file = readdir($handler))
{
if(is_file($dir . $file))
{
rename($dir . $file, $dir . $counter . ".jpg");
$counter++;
}
}
closedir($handler);
?>
цитата
29/06/07 в 01:56
 MozovCJ
Последовательность нужна для следующего:
в папке распакованный сет фриконтента, хочу его привести в более удобный вид, ну и чтоб фото были последовательными, как изначально.
Я пока наковырял вот это:
Код:
$dir = "папка с фотками";
$keyword="00";
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false)
        if ($file != "." && $file != "..") {
           rename ($file,xxx.++$keyword.".jpg");
        }
        closedir($dh);
    }
}


Щас буду твои пример ковырять., спасибо.

зы. В принципе по циклу, последовательность файлов так и так сохраняется вроде пока.

Последний раз редактировалось: MozovCJ (29/06/07 в 02:09), всего редактировалось 1 раз
цитата
29/06/07 в 02:04
 MozovCJ
а это для распаковки сета, если кому пригодицца
Код:

require_once('pclzip.lib.php');
$out_path="out";
$arch="img.zip";


$zip = new PclZip($arch);
$list=$zip->extract(
PCLZIP_OPT_PATH, $out_path,
PCLZIP_OPT_SET_CHMOD, 0777,
PCLZIP_OPT_BY_EREG, "jpg$");
    if ($list == 0) {
      echo "ERROR : ".$archive->errorInfo(true);
    }

использовал http://www.phpconcept.net/pclzip/ библиотеку отсюда
цитата
03/07/07 в 03:00
 adultblogging
вот еще пример решения "задачки":
Код:
$dir = '/path/to/files';
$i = 0;
foreach ( glob("$dir/*") as $file ) {
    rename($file, sprintf("$dir/xxx%02d.jpg", ++$i));


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