Возникла конкретная задача: создать на основании списка однотипных файлов определенную структуру в папке и эти файлы переместить. Код ниже. Согласен, что это скорее скрипт для pyton или вообще должен быть file.bat… однако я изучаю php. Структура будущей директории описана в комментариях к коду:
<?php // подключаю свою библиотеку include __DIR__ . '/../config/function.php'; // прочитать список файлов в массив $list // https://php.net/manual/ru/function.scandir.php $dir = __DIR__ . '/tmp'; $list = scandir($dir); // в цикле сделать папки по определенной схеме: // --директория, по имени файла // --директория www // --директория images // --директория source // --переместить файл из основной в директорию source // --создать файл info.md и записать в него 'Y-m-d h:m:s' foreach ($list as $key => $value) { if (!in_array($value,array(".",".."))){ // отбросить расширение и создать директорию // https://php.net/manual/ru/function.substr.php // https://php.net/manual/ru/function.mkdir.php $name = substr($value, 0, -4); $mydir = $dir . '/' . $name ; mkdir($mydir); // создать директории www, image, source // https://php.net/manual/ru/function.mkdir.php mkdir($mydir . '/www'); mkdir($mydir . '/images'); mkdir($mydir . '/source'); // создать файл info.md и записать в него 'Y-m-d h:m:s' file_put_contents($mydir . '/info.md', date('Y-m-d H:i:s')); // переместить(скопировать/удалить) файл из основной директории в source // https://php.net/manual/ru/function.move-uploaded-file.php // https://php.net/manual/ru/function.copy.php // https://php.net/manual/ru/function.unlink.php $t1 = $dir . '/' . $value; $t2 = $mydir . '/source/' . $value; copy($t1, $t2); unlink($t1); } } echo microtime(true) - $_SERVER['REQUEST_TIME_FLOAT'];
Обязательный ресурс для изучающего PHP и работу с папками и файлами — php.net