Dans le cadre d'un de mes projets, j'utilise la classe PHP 5 DirectoryIterator vraiment utile pour le parcours de dossier.
Elle utilise les itérateurs et permet donc un parcours plus simple (ca évite de faire des vérifications dans les boucles, contrairement à la classe dir).
Le soucis, c'est qu'elle n'est QUE PHP 5. Je l'ai donc implémentée en PHP 4 afin d'avoir un code fonctionnel, même sur un serveur en PHP 4.
Je vous laisse voir le code :)