如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
/**
* 递归获取文件夹内所有文件
* 返回一个TREE结构的文件系统
* @param string $dir
* @param array $filter
* @return array $files
*/
function scan_dir( $dir , $filter = array ()){
if (! is_dir ( $dir )) return false;
$files = array_diff (scandir( $dir ), array ( '.' , '..' ));
if ( is_array ( $files )){
foreach ( $files as $key => $value ){
if ( is_dir ( $dir . '/' . $value )){
$files [ $value ] = scan_dir( $dir . '/' . $value , $filter );
unset( $files [ $key ]);
continue ;
}
$pathinfo = pathinfo ( $dir . '/' . $value );
$extension = array_key_exists ( 'extension' , $pathinfo ) ? $pathinfo [ 'extension' ] : '' ;
if (! empty ( $filter ) && !in_array( $extension , $filter )){
unset( $files [ $key ]);
}
}
}
unset( $key , $value );
return $files ;
}
|
以上就是小编为大家带来的PHP递归获取目录内所有文件的实现方法全部内容了,希望大家多多支持服务器之家~