<?php

function delete_directory($dirPath)
{
    if (is_dir($dirPath)) {
        $objects = new DirectoryIterator($dirPath);
        foreach ($objects as $object) {
            if (!$object->isDot()) {
                if ($object->isDir()) {
                    delete_directory($object->getPathname());
                } else {
                    unlink($object->getPathname());
                }
            }
        }
        rmdir($dirPath);
    } else {
        throw new Exception(__FUNCTION__ . '(dirPath): dirPath is not a directory!');
    }
}

function copy_directory($src, $dst)
{
    if (file_exists($dst)) {
        rrmdir($dst);
    }
    if (is_dir($src)) {
        mkdir($dst);
        $files = scandir($src);
        foreach ($files as $file) {
            if ($file != "." && $file != "..") {
                copy_directory("$src/$file", "$dst/$file");
            }
        }
    } elseif (file_exists($src)) {
        copy($src, $dst);
    }
}