как получить список каталогов до уровня 2 в каталоге

0

Как получить файлы и список каталогов из папки до уровня 2? Здесь уровень динамический.

Например:

1
  1.1
  1.2
  1.3
2
  2.1
  2.2
3
  3.1
4
  4.1
  4.2

1,2,3,4 - это папки и 1.1, 1.2.1.3..etc могут быть папками/файлами. 1.1, 1.2 могут иметь подпапки, но в соответствии с условием максимального уровня он не должен останавливаться на переходе более второго уровня.

благодаря

Теги:
directory

1 ответ

0

"While loop" непрерывно зацикливается до тех пор, пока оператор не станет ложным.

while (readdir)
    if(folder)
        while(readir)
            if(file)
                echo filename
    else
        echo filename

Пример PHP (Linux):

class start_class {

    var $limit = 3;
    var $lvl = false;

    function open_directory($dir){
        if(!$this->lvl){
            $this->limit = $this->limit + substr_count($dir,'/');
            $this->lvl = true;
        }

        $handle = opendir($dir);

        while (false !== ($entry = readdir($handle))) {

            if(!preg_match('[^(\.)]',$entry)){
                if(@opendir( ($sub = $dir.'/'.$entry) ) !== false){
                    if($this->limit > substr_count($dir,'/')){
                        echo $sub;
                        echo '<br>';
                        $this->open_directory($sub);
                    }
                }else{
                    echo $dir.'/'.$entry;
                    echo '<br>';
                }
            }
        }

    }

}

$class = new start_class();
$class->limit = 2;
$class->open_directory('/var/www');

Ещё вопросы

Сообщество Overcoder
Наверх
Меню