/**
 * Recursively delete files and folders from a directory.
 * Including the directory itself.
 */
function recursive_remove($dir)
{
    if (is_dir($dir)) {
        $objects = scandir($dir);
        foreach ($objects as $object) {
            if ($object != "." && $object != "..") {
                if (filetype($dir . "/" . $object) == "dir") {
                    recursive_remove($dir . "/" . $object);
                } else {
                    unlink($dir . "/" . $object);
                }
            }
        }
        reset($objects);
        rmdir($dir);
    }
}
function recursive_remove($src)
{
    $dir = opendir($src);
    while (false !== ($file = readdir($dir))) {
        if ($file != '.' and $file != '..') {
            if (is_dir($src . '/' . $file)) {
                recursive_remove($src . '/' . $file);
            } else {
                unlink($src . '/' . $file);
            }
        }
    }
    rmdir($src);
    closedir($dir);
}