Очень лаконичный код для прохождения по всем файлам и директориям на PHP:
$path = realpath('dir/');
$objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::SELF_FIRST);
foreach($objects as $name => $object) {
if(strpos($name, ".html") !== false)
echo "$name <br>";
}
В данном примере происходит проход по всем вложенным директориям и поиск файлов с расширением *.html.
