我正在使用RecursiveDirectoryIterator来显示路径中的文件:
$pasta = $_SERVER["DOCUMENT_ROOT"]."/files/";
$dir = new RecursiveDirectoryIterator($pasta, FilesystemIterator::SKIP_DOTS);
$dir = new RecursiveIteratorIterator($dir, RecursiveIteratorIterator::CHILD_FIRST);
$dir->setMaxDepth(1);
foreach ($dir as $fileinfo) {
echo $fileinfo->getFilename()."<br/>";
}
以字母顺序显示所有文件和文件夹,有没有办法按字母顺序显示第一个文件夹而不是文件?
答案 0 :(得分:2)
Using the isDir
method to separate directives from files.
$pasta = $_SERVER["DOCUMENT_ROOT"]."/files/";
$dir = new RecursiveDirectoryIterator($pasta, FilesystemIterator::SKIP_DOTS);
$dir = new RecursiveIteratorIterator($dir, RecursiveIteratorIterator::CHILD_FIRST);
$dir->setMaxDepth(1);
$dirs = [];
$files = [];
foreach ($dir as $fileinfo) {
if($fileinfo->isDir())
$dirs[] = $fileinfo->getFilename();
else
$files[] = $fileinfo->getFilename();
}
$result = array_merge($dirs,$files);
echo "<pre>";
print_r($result);
echo implode('<br>', $result);