14

我是 PHP 的初学者。我想从特定文件夹/目录中读取文件。我不想要其中的子文件夹或文件。我只想列出目录中的直接文件。我最终得到了 3 个解决方案,glob()readdir()scandir()。我可以像这样列出文件;

foreach (glob("*.*") as $filename) {
    echo $filename."<br />";
}

if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
            echo "filename: .".$file."<br />";
        }
        closedir($dh);
    }
}

$files = scandir($dir);
foreach($files as $val){
  echo $val;
}

哪一个更快更高效?

4

1 回答 1

14

也许是 SPL 的 DirectoryIterator? http://php.net/manual/en/class.directoryiterator.php

foreach(new DirectoryIterator($dir_path) as $item) {
   if (!$item->isDot() && $item->isFile()) {
       echo $item->getFilename();
   }
}
于 2013-08-17T15:40:35.907 回答