/
spirzen
/
it-code-examples
Обзор
Документация
Войти
/
spirzen
/
it-code-examples
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
examples/php/php-507-131-009/main.php
46 строк
1 KB
Spirzen
Code migration pack
09 июн 2026, 01:41
09 июн 2026, 01:41
cebc284
Код
Авторство
О чём код?
<?php /** * Создание резервной копии * Использование: php backup.php <путь_к_папке> <путь_для_резерва> */ $sourceDir = $argv[1] ?? '.'; $backupDir = $argv[2] ?? './backups'; $date = date('Y-m-d_H-i-s'); $backupName = "backup_{$date}.zip"; $backupPath = $backupDir . '/' . $backupName; if (!is_dir($sourceDir)) { die("Ошибка: Исходная директория не найдена\n"); } if (!is_dir($backupDir)) { mkdir($backupDir, 0755, true); } $zip = new ZipArchive(); if ($zip->open($backupPath, ZipArchive::CREATE | ZipArchive::OVERWRITE) !== TRUE) { die("Ошибка: Не удалось создать архив\n"); } $iterator = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($sourceDir, RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::SELF_FIRST ); foreach ($iterator as $file) { $filePath = $file->getPathname(); $relativePath = $file->getRelativePathname(); if ($file->isDir()) { $zip->addEmptyDir($relativePath); } else { $zip->addFile($filePath, $relativePath); } } $zip->close(); echo "Резервная копия создана: {$backupPath}\n"; echo "Размер архива: " . filesize($backupPath) . " байт\n"; ?>