PHP рекурсивная функция удаления

Я написал рекурсивную функцию PHP для удаления папок. Интересно, как мне изменить эту функцию, чтобы удалить все файлы и папки в веб-хостинге, за исключением заданного массива файлов и имен папок (например, cgi-bin, .htaccess)?

КСТАТИ

использовать эту функцию, чтобы полностью удалить каталог, вызывающий, как это

recursive_remove_directory('path/to/directory/to/delete');

использовать эту функцию, чтобы очистить каталог, вызывающий как это:

recursive_remove_directory('path/to/full_directory',TRUE);

Теперь функция

function recursive_remove_directory($directory, $empty=FALSE)
{
    // if the path has a slash at the end we remove it here
    if(substr($directory,-1) == '/')
    {
        $directory = substr($directory,0,-1);
    }

    // if the path is not valid or is not a directory ...
    if(!file_exists($directory) || !is_dir($directory))
    {
        // ... we return false and exit the function
        return FALSE;

    // ... if the path is not readable
    }elseif(!is_readable($directory))
    {
        // ... we return false and exit the function
        return FALSE;

    // ... else if the path is readable
    }else{

        // we open the directory
        $handle = opendir($directory);

        // and scan through the items inside
        while (FALSE !== ($item = readdir($handle)))
        {
            // if the filepointer is not the current directory
            // or the parent directory
            if($item != '.' && $item != '..')
            {
                // we build the new path to delete
                $path = $directory.'/'.$item;

                // if the new path is a directory
                if(is_dir($path)) 
                {
                    // we call this function with the new path
                    recursive_remove_directory($path);

                // if the new path is a file
                }else{
                    // we remove the file
                    unlink($path);
                }
            }
        }
        // close the directory
        closedir($handle);

        // if the option to empty is not set to true
        if($empty == FALSE)
        {
            // try to delete the now empty directory
            if(!rmdir($directory))
            {
                // return false if not possible
                return FALSE;
            }
        }
        // return success
        return TRUE;
    }
}

Ответы на вопрос(3)

Ваш ответ на вопрос