БлогNot. Как переименовать много файлов, давая им имена по порядку

Как переименовать много файлов, давая им имена по порядку

Как обычно, нужно было переименовать кучу файлов так, чтобы имена им давались "по порядку". Наверное, самое быстрое (для меня) решение - написать мини-скрипт на PHP и выполнить его на локальном хосте, переместив перед этим туда нужные файлы.

Если представить, что стандартная функция scandir сформирует массив с именами файлов, отсортированных в нужном порядке по алфавиту (а если нужен какой-то особый порядок, существуют функции сортировки массивов), то нам останется только отфильтровать из массива имён файлов ссылки на саму папку (".") и папку-родителя (".."), а затем в цикле переименовать файлы в нужном порядке, формируя новое имя, например, с помощью стандартной функции sprintf.

В моём случае все нужные файлы лежали на локалхосте во вложенной по отношению к папке скрипта папке img, у них был формат .jpg, а нужный шаблон переименования имел вид "001.jpg", "002.jpg" и т.д.

Если ваши требования отличаются, это легко поправить в прилагаемом листинге из 5 строчек.

<?php
 $folder = './img'; //папка с исходными файлами, без "/" в конце
 $array = array_filter(scandir($folder),function ($item){return $item[0]=='.'?false:true;});
  //оглавление папки img без "." и ".." теперь в $array
 $n = 1; //номер первого файла
 foreach ($array as $item) 
  rename ($folder.'/'.$item, sprintf("%s/%03d.jpg",$folder,$n++)); 
   //переименование, новое имя формируется через sprintf
?>

теги: php список

25.09.2019, 12:54; рейтинг: 123