Pues con directorios se trata de leer tus archivos del directorio y si este contiene sub-directorios .. aplicar "recursividad" para leer las ramas (sub-directorios) que contenga este.
Tal vez en las funciones de ftp de PHP en los comentarios de los usuarios tengas ejemplos de "lectura de directorios/subdirectorios" de forma "recursiva" ya implementados:
www.php.net/ftp
Un saludo,