显示所有文件和目录的函数

时间:2016-02-23 18:35:22

标签: php dir

我试图让函数在一个选定的目录中显示所有文件和dir(如果有)。

class Test{

private $directory;

    public function getDir($directory){
            $this->directory = realpath($directory);
            $scan = scandir($this->directory);

            foreach ($scan as $value) {

                if(!is_dir($this->directory.DIRECTORY_SEPARATOR.$value)){
                    echo '<span style="color:blue">'.$value.'</span><br>';
                }else{
                    echo '<span style="color:red">'.$value.'</span><br>';
                    //Here I tried to return getDir($value) - but I retype $directory any ideas ?
                }
            }
        }

我想过如何制作但是......小小的帮助真的很棒。                                                      请原谅我糟糕的英语。

1 个答案:

答案 0 :(得分:1)

只需使用递归方式:

<?php
...
private $result;

public function getDir($directory) {
    $files = scandir(realpath($directory));

    foreach($files as $key => $value){
        $path = realpath($directory .DIRECTORY_SEPARATOR. $value);
        if(!is_dir($path)) {
            $this->results[] = '<span style="color:blue">'.$value.'</span><br>';
        } else if($value != "." && $value != "..") {
            $this->getDir($path);
            $this->results[] = '<span style="color:red">'.$value.'</span><br>';
        }
    }

    return $this->results;
}