如下所示:
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递归获取目录内所有文件的实现方法全部内容了,希望大家多多支持服务器之家~