PHP 递归Glob文件树

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 递归Glob文件树相关的知识,希望对你有一定的参考价值。

/* to use:
pattern = glob pattern to match
flags = glob flags
path = path to search
depth = how deep to travel, -1 for unlimited, 0 for only current directory
*/

$folders = folder_tree('*.*', 0, '/path_here/', -1);

print_r($folders);

function folder_tree($pattern = '*', $flags = 0, $path = false, $depth = 0, $level = 0) {
	$tree = array();
	
	$files = glob($path.$pattern, $flags);
	$paths = glob($path.'*', GLOB_ONLYDIR|GLOB_NOSORT);
	
	if (!empty($paths) && ($level < $depth || $depth == -1)) {
		$level++;
		foreach ($paths as $sub_path) {
			$tree[$sub_path] = folder_tree($pattern, $flags, $sub_path.DIRECTORY_SEPARATOR, $depth, $level);
		}	
	}

	$tree = array_merge($tree, $files);
	
	return $tree;
}

以上是关于PHP 递归Glob文件树的主要内容,如果未能解决你的问题,请参考以下文章

php 递归删除目录

python标准库glob 递归目录下所有文件

python 使用glob对所有用户主文件夹执行递归文件搜索

使用 PHP 递归搜索目录中的文件并更改值

如何使用正则表达式 (glob) 搜索文件树

选择带有递归glob for babel命令的文件