php教程

超轻量级php框架startmvc

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

更新时间:2020-04-05 12:59:00 作者:startmvc
获取某目录下所有子文件和子目录functiongetDirContent($path){if(!is_dir($path)){returnfalse;}//readdir方

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


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));

以上所述是小编给大家介绍的php获取目录下所有文件及目录多种方法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

php获取目录下的文件 php读取目录下文件 php文件目录