项目中经常用到获取目录下所有文件的方法,这次用到了,也记录一下。
目录:
testfile1.log
nginx/
log/
file.log
file1.log
file2.log
例子:
function getDirFiles($folder){
$filesArr=[];
if(is_dir($folder)){
$hander = opendir($folder);
while($file = readdir($hander)){
if($file=='.'||$file=='..'){
continue;
}elseif(is_file($folder.'/'.$file)){ //判断为文件的
$filesArr[] = $folder.'/'.$file;
}elseif(is_dir($folder.'/'.$file)){ //判断为路径的
$result = getDirFiles($folder.'/'.$file);
foreach ($result as $v){
$filesArr[] = $v;
}
}
}
}
return $filesArr;
}
$result = getDirFiles('/home/wwwroot/test');
var_dump($result);
array (size=4)
0 => string '/home/wwwroot/test/file1.log'
1 => string '/home/wwwroot/test/nginx/file1.log'
3 => string '/home/wwwroot/test/nginx/file2.log'
4 => string '/home/wwwroot/test/nginx/log/file.log'
用到的方法:is_dir、is_file、opendir
is_dir - 检查指定的文件是否是一个目录。
如果目录存在,该函数返回 TRUE。
语法:
is_dir(file)
file:必需。规定要检查的文件。
is_file - 检查指定的文件是否是常规的文件。
如果文件是常规的文件,该函数返回 TRUE。
语法:
is_file(file)
file:必需。规定要检查的文件。
opendir - 打开目录句柄。
语法:
opendir(path,context)
path 必需。规定要打开的目录路径。
context 可选。规定目录句柄的环境。
closedir - 关闭目录句柄。
语法:
closedir(dir_handle)
dir_handle
可选。指定之前由 opendir() 打开的目录句柄资源。
如果该参数未指定,则使用最后一个由 opendir() 打开的链接。