php获取目录下所有文件及目录(多种方法)

来源:互联网 发布:金蝶软件财务报表 编辑:程序博客网 时间:2024/05/29 12:37

获取某目录下所有子文件和子目录

function getDirContent($path){    if(!is_dir($path)){        return false;    }    //readdir方法    /* $dir = opendir($path);    $arr = array();    while($content = readdir($dir)){        if($content != '.' && $content != '..'){            $arr[] = $content;        }    }    closedir($dir); */    //scandir方法    $arr = array();    $data = scandir($path);    foreach ($data as $value){        if($value != '.' && $value != '..'){            $arr[] = $value;        }    }    return $arr;}

下面介绍的三种方法,是获取某个目录下所有的目录(包括子目录,子孙目录)和文件,直到最里层

方法一

function searchDir($path,&$files){    if(is_dir($path)){        $opendir = opendir($path);        while ($file = readdir($opendir)){            if($file != '.' && $file != '..'){                searchDir($path.'/'.$file, $files);            }        }        closedir($opendir);    }    if(!is_dir($path)){        $files[] = $path;    }}//得到目录名function getDir($dir){    $files = array();    searchDir($dir, $files);    return $files;}$filenames = getDir('lss');foreach ($filenames as $value){    echo $value.'<br/>';} 

方法二:

function getDir($path){    if(is_dir($path)){        $dir =  scandir($path);        foreach ($dir as $value){            $sub_path =$path .'/'.$value;            if($value == '.' || $value == '..'){                continue;            }else if(is_dir($sub_path)){                echo '目录名:'.$value .'<br/>';                getDir($sub_path);            }else{                //.$path 可以省略,直接输出文件名                echo ' 最底层文件: '.$path. ':'.$value.' <hr/>';            }        }    }}$path = 'lss';getDir($path);  

方法三:

function getDir($path){    $arr = array();        $arr[] = $path;    if(is_file($path)){    }else{        if(is_dir($path)){            $data = scandir($path);            if(!empty($data)){                foreach ($data as $value){                    if($value != '.' && $value != '..'){                        $sub_path = $path."/".$value;                        $temp =  getDirContent($sub_path);                        $arr = array_merge($temp,$arr);                    }                                    }            }        }    }    return $arr;}$path = 'lss';var_dump(getDir($path));
原创粉丝点击