我使用以下php代码从相关目录中获取所有图像名称。
$dir = "images";
$images = scandir($dir);
$listImages=array();
foreach($images as $image){
$listImages=$image;
echo ($listImages) ."<br>";
}
这个完美无缺。但我想从相关目录中获取所有子目录中的所有图像文件名。父目录不包含图像,所有图像都包含在子文件夹中作为folows。
如何浏览所有子文件夹并获取图像名称?
答案 0 :(得分:1)
利用递归,你可以很容易地做到这一点。此函数将无限期地遍历您的目录,直到每个目录完成搜索。这没有被测试过。
$images = [];
function getImages(&$images, $directory) {
$files = scandir($directory); // you should get rid of . and .. too
foreach($files as $file) {
if(is_dir($file) {
getImages($images, $directory . '/' . $file);
} else {
array_push($images, $file); /// you may also check if it is indeed an image
}
}
}
getImages($images, 'images');
答案 1 :(得分:1)
试试以下内容。要获取完整目录路径,请与父目录合并。
$path = 'images'; // '.' for current
foreach (new DirectoryIterator($path) as $file) {
if ($file->isDot()) continue;
if ($file->isDir()) {
$dir = $path.'/'. $file->getFilename();
$images = scandir($dir);
$listImages=array();
foreach($images as $image){
$listImages=$image;
echo ($listImages) ."<br>";
}
}
}