我在PHP中创建一个简单的文件列表函数,只是递归列出目录中的所有文件。 我现在的功能看起来像这样:
<?php
function listFiles($dir){
echo "<ul class=\"filebrowser\">";
$dirCont = scandir($dir); // scan the whole directory
sortFoldersFirst($dirCont,$dir); // sort alphabetically, folders first
foreach ($dirCont as $value) {
if (!in_array($value,array(".","..",".deleted"))){ // don't list the parent folder, current folder, or the (hidden) .deleted folder
if (is_dir($dir . DIRECTORY_SEPARATOR . $value)){ // if it's a folder
echo "<h3 class=\"filebrowser\">" . $value . "</h3>"; // show the folder name
listFiles($dir . DIRECTORY_SEPARATOR . $value); // do the same again for the child folder
} else {
echo "<li><a href=\"".$dir.DIRECTORY_SEPARATOR.$value."\">".$value."</a></li>"; // a link to the file
}
}
}
echo "</ul>";
}
?>
这给了我这样的东西:
这项技术工作得很好,但是,我想存储一些关于文件的更多信息,比如作者,评论,可能是缩略图的链接等。 我想摆脱'真正的'目录结构,并将所有内容存储在数据库中。 (只是1个大文件夹中的所有文件,以及数据库中文件的链接,而不是实际文件) 如何将此信息存储在数据库中,如何在不更改浏览器结果的情况下将其恢复。 换句话说:如何将树结构输入和输出数据库,以及如何递归循环它。
我找到了this answer。 它显示了如何通过为每个文件/文件夹保存父文件夹的id来创建数据库树结构。这样可以轻松获取文件的完整路径,但列出文件夹的所有内容似乎不太方便。 这个问题有更好的解决方案吗?
提前致谢, 彼得