Вот функция для копирования всех файлов из папки А в папку Б: function copyAllFiles($sourceDir, $destinationDir) { // Проверяем существование исходной папки if (!is_dir($sourceDir)) { throw new Exception("Исходная папка не существует: " . $sourceDir); } // Создаем целевую папку если не существует if (!is_dir($destinationDir)) { if (!mkdir($destinationDir, 0755, true)) { throw new Exception("Не удалось создать целевую папку: " . $destinationDir); } } // Получаем все файлы из исходной папки $files = array_diff(scandir($sourceDir), ['.', '..']); $copiedCount = 0; $errors = []; foreach ($files as $file) { $sourcePath = $sourceDir . DIRECTORY_SEPARATOR . $file; $destinationPath = $destinationDir . DIRECTORY_SEPARATOR . $file; // Копируем только файлы (не папки) if (is_file($sourcePath)) { if (copy($sourcePath, $destinationPath)) { $copiedCount++; } else { $errors[] = "Не удалось скопировать: " . $file; } } } return [ 'copied' => $copiedCount, 'errors' => $errors, 'total' => count($files) ]
PHP Функции копирования папок "один в один"
23 августа 202523 авг 2025
4 мин