【发布时间】:2021-09-17 09:21:08
【问题描述】:
我正在使用 Fancytree,我想生成一个文件/文件夹树,但不包括所有不是来自当前用户的文件夹。
例子:
UPPERCASE = FOLDER
lowercase = file
我想用用户“Peter”创建一个树形结构
我有几个问题:
- 我不懂
listFolders函数,不能给它一个参数(比如$name_user),否则不起作用。 - 行 >>
print_r ('TAKE THIS'. $ Dir);foreach 不起作用 - 我的代码重复了,因为我无法在函数内创建函数...
这是我的代码:
<?php
$name_user = 'Peter'; // actualy not user :-(
print_r(listFolders());
function listFolders($dir = __DIR__ . '/datausers') {
$dh = scandir($dir);
$name_user = "Peter";
$return = [];
if (strpos($dir, "/datausers/PERSONNAL") !== false){ // PERSONNAL found !
if ($dir === __DIR__ . '/datausers/PERSONNAL') {
print_r('TAKE THIS' . $dir);
echo '</br>';
foreach ($dh as $item) {
if ($item != '.' && $item != '..') {
if (is_dir($dir . '/' . $item)) { // it's a folder
$return[] = array(
'title' => $item,
'folder' => true,
'expanded'=> true,
'children' => listFolders($dir . '/' . $item, $key)
);
} else { // it's a file
$return[] = [
'title' => $item,
];
}
}
}
}
if (strpos($dir, "/datausers/PERSONNAL/" . $name_user) !== false){ // Peter found
print_r('TAKE THIS' . $dir);
echo '</br>';
foreach ($dh as $item) {
if ($item != '.' && $item != '..') {
if (is_dir($dir . '/' . $item)) { // it's a folder
$return[] = array(
'title' => $item,
'folder' => true,
'expanded'=> true,
'children' => listFolders($dir . '/' . $item, $key)
);
} else { // it's a file
$return[] = [
'title' => $item,
];
}
}
}
}
}
else {
print_r('TAKE THIS' . $dir);
echo '</br>';
foreach ($dh as $item) {
if ($item != '.' && $item != '..') {
if (is_dir($dir . '/' . $item)) { // it's a folder
$return[] = array(
'title' => $item,
'folder' => true,
'expanded'=> true,
'children' => listFolders($dir . '/' . $item, $key)
);
} else { // it's a file
$return[] = [`enter code here`
'title' => $item,
];
}
}
}
}
return $return;
}
?>
【问题讨论】:
标签: php file directory directory-structure fancytree