獲取某目錄下所有子文件和子目錄
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獲取目錄下所有文件及目錄多種方法詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
您可能感興趣的文章:- PHP超低內(nèi)存遍歷目錄文件和讀取超大文件的方法
- PHP遍歷目錄文件的常用方法小結(jié)
- php實現(xiàn)統(tǒng)計目錄文件大小的函數(shù)
- php使用glob函數(shù)快速查詢指定目錄文件的方法
- php清空(刪除)指定目錄下的文件,不刪除目錄文件夾的實現(xiàn)代碼