Сканирование директории на PHP

Расскажу немного о том как можно быстро стандартными средствами языка программирования PHP сканировать директорию дабы узнать весь список файлов находящихся в ней.

Ниже представлены самые простые способы для наглядности. Если нужно, то их всегда можно доработать до полноценного скрипта решающего какие либо проблемы связанные со сканированием директорий. Итак начнём.
[php]
$PATH1 = "d:\Audio"; //директория которую будем сканировать

//Способ 1
print_r(scandir($PATH1)); //просто выведет на экран массив в котором элементы будут являться файлами в каталоге

//Способ 2
$descriptor = opendir($PATH1); //открываем дескриптор
while($currentElement = readdir($descriptor)) { //в цикле читаем каждый следующий элемент в переменную и выводим её на экран оператором echo
echo "{$currentElement}\n";
}

//Способ 3 более прдвинутый
function scan($dir,$counter) { //функция сканирует все файлы и каталоги
if (!preg_match("/\.$/",$dir) && !preg_match("/\.\.$/",$dir)){ //если название директории не точка (текущая директория) и не две точки (выход на шаг вверх)
if (is_file($dir)) { //если это файл
echo "$counter file — $dir\n";
} else { //если же это не файл, т.е. директория
$d=opendir("$dir"); //открываем дескриптор каталога
while(false != ($file = readdir($d))) {//получаем элемент каталога по его дискриптору, цикл длится до тех пор пока извлекаются элементы каталога теущего дескриптора
scan("$dir/$file",$counter++); //в рекурсии вызываем эту функцию для текущего каталога и каждого элемента в нём
}
closedir($d); //освобождаем дескриптор текущего последнего каталога
}
}
}
$counter = 0; //инициализируем счётчик файлов
scan($PATH1,$counter); //просто вызываем функцию
[/php]
Как видите в коде так же присутствуют комментарии для большей наглядности и понятности. Думаю вопросов с этим кодом возникнуть не должно. На этом всё, спасибо за внимание.