контент] */ function createStructure($path, $mode, $files = []) { // 1. Создаем дерево папок, если оно не существует // Параметр true позволяет создавать вложенность любой глубины за один раз if (!is_dir($path)) { if (!mkdir($path, $mode, true)) { return; // Прекращаем, если нет прав на создание } chmod($path, $mode); // Принудительно выставляем права (важно для 0777 !!!) } // 2. Создаем файлы внутри указанного пути if (!empty($files)) { foreach ($files as $name => $content) { $filePath = rtrim($path, '/') . '/' . trim($name); // Записываем контент и выставляем права на файл (0644) file_put_contents($filePath, $content); chmod($filePath, 0644); } } } // Конфигурация структуры проекта $installPath = 'library/install'; $structure = [ "$installPath" => [ 'sample_install.php' => '' ], "$installPath/css" => [ 'install.css' => '/* Стили инсталлятора */' ], "$installPath/js" => [ 'install.js' => '/* Скрипты инсталлятора */' ], "$installPath/tpl" => [ 'tpl_install_header.php' => '', 'tpl_install_footer.php' => '' ], // Пустые папки для ресурсов "$installPath/pages/images" => [], "$installPath/pages/lang" => [] ]; // Запуск процесса создания foreach ($structure as $path => $files) { createStructure($path, 0755, $files); } echo "Структура UCMS успешно создана. Права: папки **0755**, файлы **0644**."; ?>