UA95 (14.09.2012/21:11)Нет вот смотри :
Если правильно понял то вот,выводит содержимое папки
<?php
$dir = opendir('papka');
while ($arr = readdir($dir)){
echo $arr . '<br />';
}
closedir($dir);
?>
$path='dir';
function fenix_scandir($path){
$files=array_diff(scandir($path),array('.','..'));
$f=0;
$d=0;
foreach ($files as $file){
if (is_file($path.'/'.$file)){
$array[$file]=$path;
$f++;
}else{
$path .= '/'.$file
fenix_scandir($path);
$d++;
}}
echo 'Всего найдено: '.$f.'файл(ов) и'. $d . 'пап(ок)(ка)';
}
это рекрурсия! Алгоритм таков:
получаем все содержимое папки "Dir" с помощью функции scandir в массив и отсеиаваем элеметы "." и ".." (ссылки в корень и в предыдущую папку) с помощью функции array_diff, далее с помощью цикла foreach перебираем каждый элемент выше описанного массива и в цикле проверяем являеться ли элемент файлом если да , то помешаем в новый массив имя файла которое является ключом элемента а путь к файлу его значением и добавляем к счетчику файлов ($f) единицу , иначе добавляем переменой пути имя папки и делаем рекрурсию, тобишь вызываем нашу функцию снова, но уже с новым путем и обновляем счетчик папок ($d) на единицу. И выводим общее количество найденных папок и файлов ! Все листинг закончен !