gpt4 book ai didi

javascript - PHP - 创建指定文件夹的目录列表

转载 作者:行者123 更新时间:2023-11-30 13:44:53 24 4
gpt4 key购买 nike

我有一小段代码,我用它来扫描服务器上的某个目录以查找其中的所有文件和文件夹。但是有一个问题......它只能扫描指定的文件夹,而不能扫描子目录。假设 share/ 是这次扫描的根目录,如果任何子目录中有文件,例如 share/folder/file.png,它们将不会被列出,我的项目的全部目的是创建一个 HTML 文件浏览器。

这是我用来从服务器接收文件列表以稍后使用 JavaScript 在浏览器中显示它的代码:

<?php
$listFiles = array();

if ($handle = opendir('./share')) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
$listFiles[] = $entry;
}
}
closedir($handle);
}

$FS_files = json_encode($listFiles);
?>

然后我将它粗暴地“推送”到我的实际 JavaScript 代码中,如下所示:

let FS_files = <?php echo $FS_files ?>

我上面的代码基本上从扫描的目录生成一个文件名数组。我想知道的是如何获取此目录及其中所有文件夹中文件的完整 JSON 树,或者如何更改我的代码以使其以这种方式工作?

最佳答案

<?php
function scanFolder($dir) {
$result = array();
$cdir = scandir($dir);
foreach ($cdir as $key => $value) {
if (!in_array($value,array(".",".."))) {
if (is_dir($dir . DIRECTORY_SEPARATOR . $value)) {
$result[$value] = scanFolder($dir . DIRECTORY_SEPARATOR . $value);
} else {
$result[] = $value;
}
}
}
return $result;
}
$FS_files = json_encode(scanFolder("./share"));
?>

该函数扫描文件夹并使用 is_dir 检查每个条目。如果为真,则使用相同的功能扫描此文件夹。

关于javascript - PHP - 创建指定文件夹的目录列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59520886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com