【发布时间】:2021-07-26 22:52:09
【问题描述】:
我正在制作一个“照片上传器”项目,可以获取特定文件夹的所有子文件和子目录。
我用iterator 来获取文件和目录:
$path = dirname(__FILE__).'/';
use RecursiveIteratorIterator as RII;
use RecursiveDirectoryIterator as RDI;
use RecursiveCallbackFilterIterator as RCFI;
$directory = new RDI($path, RDI::SKIP_DOTS);
$filter = new RCFI($directory, function ($current, $key, $iterator) {
return $current->isDir() || preg_match('/^.+(.jpe?g|.png|.gif)$/i', $current->getPathname()) > 0;
});
$iterator = new RII($filter, RII::SELF_FIRST);
得到它们后,我希望将它们的结构存储到数据库中,如下表:column `id` is AUTO_INCREMENT
table `item`
| id | title | type | parent_id |
和 Unix 一样,一切都是文件,甚至是目录,我使用列 type 来存储 文件夹 或 文件,所以我可以使用只有一张桌子。
例如,我有两个文件和两个文件夹:
test (folder)
-file1.png
-subtest (folder)
--file2.png
我想像这样存储它们(例如,它们的顺序并不重要):
| id | title | type | parent_id |
-----------------------------------------
| 1 | test | folder | null |
| 2 | file1.png | file | 1 |
| 3 | subtest | folder | 1 |
| 4 | file2.png | file | 3 |
我知道如何获得 我不知道如何将每个文件夹及其父文件夹结构放入数组中,然后将它们存储到上面的表格中
【问题讨论】: