在PHP 5中使用DirectoryIterator()进行目录迭代

遍历目录的通常方法是获取目录的句柄,然后遍历每个项目,确保文件可读且不是“”。或“ ..”,然后再对文件进行处理。因为这样做很多,所以DirectoryIterator()在PHP5中创建了对象以简化此过程。

DirectoryIterator()对象的构造函数采用单个参数,这是要迭代的目录的路径。

$dir = new DirectoryIterator('/');

要获取当前的工作目录,可以使用PHP函数getcwd()。这将返回运行PHP脚本的目录。

$dir = new DirectoryIterator(getcwd());

上一部分代码将打开服务器的根目录。如果您使用的是Linux服务器,则将看到诸如dev,var,srv等目录,lib,home,root,sbin和usr等目录。

现在创建了对象,可以使用一些不同的功能来查看不同的事物。这是可以使用的一小部分清单:

  • isDot():此功能用于查看文件是否为“。”。或“ ..”。

  • isReadable():检查文件是否可读。如果为true,则返回true,否则为false。

  • next():将迭代器移至列表中的下一项。

  • valid():此函数检查目录中是否有可以迭代的内容。基本上,如果迭代器位于目录的末尾,则此函数将返回false。

  • current():返回当前文件的名称。

这些功能可以通过以下方式组合在一起。此代码段将打印出目录中的所有文件。

while($dir->valid()){
 if(!$dir->isDot()){
  print $dir->current()."<br />";
 }
 $dir->next();
}