【问题标题】:php: scan a directory just for files (filename+extension) [duplicate]php:仅扫描目录以查找文件(文件名+扩展名)[重复]
【发布时间】:2017-11-10 14:27:46
【问题描述】:

我想用 php 函数扫描一个目录,以查明与数据库中特定文件名对应的文件是否存在。当文件不作为数据库条目存在(从数据库中删除)时,相应的文件也应该从目录中删除。我的问题是: scandir() 不仅返回文件。基本上我需要 can 函数才能在 foreach 中使用它的返回值。

【问题讨论】:

标签: php


【解决方案1】:

当然,您也可以使用scandir。我建议使用RecursiveIteratorIteratorRecursiveDirectoryIterator

示例代码:

function recursiveDirectoryIterator($path) {
  foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)) as $file) {
    if (!$file->isDir()) {
      yield $file->getFilename(); // You can add $file->getFileExtension() too
    }
  }
}

通常,我只是将其作为评论留下,但我觉得大多数人不经常使用 RecursiveIterator 和 DirecotryIterator,所以举个例子。

【讨论】: