Шляхом Альбірео

НовиниЗаписиPHPДублювання директорій

2022.07.16
Генерація дублів директорій разом з їх вмістом.

NoteГенерація 10 однакових фолдерів у розділі test/new/ які містять всі файли з test/old. Задача дублювання виникла при генерації великої кількості шаблонів для статей.

/* Генерація 10 дублікатів фолдера */

[PHP]

<?php $old='test/old'; $start=1; $end=intval($start)+9; for($i=$start;$i<=$end;$i++){ $new='test/new/'.$i; if (!file_exists($new)) mkdir($new); $handle = opendir($old); while (($item = readdir($handle)) !== false) { if ($item == '.' || $item == '..') continue; $_source = $old . '/' . $item; $_dest = $new . '/' . $item; if (is_file($_source)) copy($_source, $_dest); if (is_dir($_source)) copydir($_source, $_dest); } closedir($handle); ?>

NoteГенерація одного фолдера в поточній директорії з міткою часу у назві фолдера.

/* Оформлення у вигляді функції */

[PHP]

<?php // Формуємо технічну адресу доступу до поточного файлу $MAGIC_DIR = __DIR__ ; // Генеруємо дублікат файлів $data_article = date("y.m.d H.m.s"); dabble($data_article, $MAGIC_DIR); function dabble($data_article, $MAGIC_DIR) { $old = $MAGIC_DIR . "/article-sample"; $start = 1; $end = intval($start); for($i = $start;$i<=$end;$i++){ $new = $MAGIC_DIR . "/article " . $data_article; if (!file_exists($new)) mkdir($new); $handle = opendir($old); while (($item = readdir($handle)) !== false) { if ($item == '.' || $item == '..') continue; $_source = $old . '/' . $item; $_dest = $new . '/' . $item; if (is_file($_source)) copy($_source, $_dest); if (is_dir($_source)) copydir($_source, $_dest); } closedir($handle); } } ?>