我的最终目标是仅从目录(其中包含目录)中获取 jpg|png 文件。我首先从这篇文章开始:List Files and Directories with PHP(2012 年 10 月;作者 Aurelio De Rosa),然后选择了 OOP 方法(因为这似乎是最好的方法)。
当然,随之而来的是一些复杂性,到目前为止我还没有找到一个很好的例子。以下示例(来自RecursiveDirectoryIterator
Docs)似乎让我了解了其中的一部分,但我还没有找到满足所有要求的好方法(示例下方):
$ritit = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory, FilesystemIterator::SKIP_DOTS), RecursiveIteratorIterator::CHILD_FIRST );
$r = array();
foreach ($ritit as $splFileInfo) {
$path = $splFileInfo->isDir()
? array($splFileInfo->getFilename() => array())
: array($splFileInfo->getFilename());
for ($depth = $ritit->getDepth() - 1; $depth >= 0; $depth--) {
$path = array($ritit->getSubIterator($depth)->current()->getFilename() => $path);
}
$r = array_merge_recursive($r, $path);
}
print_r($r);
我想做的是:
- 指定一个
$directory
(比方说/media/galleries
) - 让它首先查看目录(因此,如果该顶级目录中有任何文件,它会忽略它们)
- 检查每个目录是否可读(默认情况下它可能已经这样做了)
- 列出
jpg|png
这些文件中的每个文件(再次确保每个文件都是可读的,我相信默认情况下它可以这样做) - 忽略
FilesystemIterator
似乎可以做的任何/所有点文件,但我仍然.DS_Store
在顶层获得可怕的文件) - 将这些存储为多维数组
前面提到的例子似乎几乎就在那里,但是任何能引导我朝着正确方向前进的帮助都将不胜感激。