method getTree documentation in bbn\File\Dir
Return an array with the tree of the folder's content.
Example
\bbn\X::dump(\bbn\File\Dir::getTree("/home/data/test"));
/* (array)
[
[
"name" => "/home/data/test/Folder",
"type" => "dir",
"num_children" => 0,
"items" => [],
],
[
"name" => "/home/data/test/Folder_test",
"type" => "dir",
"num_children" => 1,
"items" => [
[
"name" => "/home/data/test/Folder_test/image.png",
"type" => "file",
"ext" => "png",
],
],
],
]
\bbn\X::dump(\bbn\File\Dir::getTree("/home/data/test", true) );
/* (array)
[
[
"name" => "/home/data/test/Folder",
"type" => "dir",
"num_children" => 0,
"items" => [],
],
[
"name" => "/home/data/test/Folder_test",
"type" => "dir",
"num_children" => 0,
"items" => [],
],
]
\bbn\X::dump(\bbn\File\Dir::getTree("/home/data/test", false, false, true) );
/* (array)
[
[
"name" => "/home/data/test/Folder",
"type" => "dir",
"num_children" => 1,
"items" => [
[
"name" => "/home/data/test/Folder/.doc.pdf",
"type" => "file",
"ext" => "pdf",
],
],
],
[
"name" => "/home/data/test/Folder_test",
"type" => "dir",
"num_children" => 1,
"items" => [
[
"name" => "/home/data/test/Folder_test/image.png",
"type" => "file",
"ext" => "png",
],
],
],
]
function(string $dir, bool $only_dir = false, callable $filter = NULL, bool $hidden = false)
{
$r = [];
$dir = self::clean($dir);
$dirs = self::getDirs($dir, $hidden);
if ( \is_array($dirs) ){
foreach ( $dirs as $d ){
$x = [
'name' => $d,
'type' => 'dir',
'num_children' => 0,
'items' => self::getTree($d, $only_dir, $filter, $hidden)
];
$x['num_children'] = \count($x['items']);
if ( $filter ){
if ( $filter($x) ){
$r[] = $x;
}
}
else{
$r[] = $x;
}
}
if ( !$only_dir ){
$files = self::getFiles($dir, false, $hidden);
foreach ( $files as $f ){
$x = [
'name' => $f,
'type' => 'file',
'ext' => bbn\Str::fileExt($f)
];
if ( $filter ){
if ( $filter($x) ){
$r[] = $x;
}
}
else{
$r[] = $x;
}
}
}
}
return $r;
}
Return an array with the tree of the folder's content. BBN is a suite of PHP and JS libraries and VueJS components - all open-source! bbn.io, build applications, the quick way
This website uses cookies to ensure you get the best experience on our website.
© 2011-2025
BBN Solutions