扫描以仅显示文件夹,而不显示文件

php
2022-08-31 00:08:22

我有一些PHP用于从我的图像目录中提取文件列表 - 它以形式用于选择上传图像的保存位置。代码如下:

$files = array_map("htmlspecialchars", scandir("../images"));       

foreach ($files as $file) {
 $filelist .= sprintf('<option value="%s">%s</option>' . PHP_EOL, $file, $file );
}

它工作正常,但在“图像”中显示所有文件和文件夹,是否有人知道修改此代码的方法,以便它仅显示在“图像”文件夹中找到的文件夹名称,而不是任何其他文件。

谢谢


答案 1

最简单,最快捷的将是带有GLOB_ONLYDIR标志的glob

foreach(glob('../images/*', GLOB_ONLYDIR) as $dir) {
    $dirname = basename($dir);
}

答案 2

功能是解决方案:is_dir()

foreach ($files as $file) {

  if(is_dir($file) and $file != "." && $file != "..") $filelist .= sprintf('<option value="%s">%s</option>' . PHP_EOL, $file, $file );

}

推荐