dongqiao8417 2016-02-08 10:32
浏览 17

在其中查找目录名称和图像名称

I am using this short script to list images within a specific folder

$dirname = "images/gallery/Project 1/";
$images = glob($dirname."*.jpg");
foreach($images as $imagesm) {
print "$imagesm";
}

However, in folder gallery I have 3 folders (Project 1, Project 2, Project 3) and I want to make the script go through each folder automatically and print the images from them.

For example:

Project 1 - image 1 - image 2 - image 3

Project 2 - image 1 - image 2 - image 3

Project 3 - image 1 - image 2 - image 3

I know that I can just copy the script for each folder, but want it to happen automatically as I might add a folder Project 4 in the future

I guess I will just need to loop through the folders, but no idea how to do it. Tried to do it this way, but it didnt work either

$dir = "images/gallery/";
$cdir = scandir($dir); 
    foreach ($cdir as $dirname) 
    {
$newdir="images/gallery/$dirname";
$images = glob($newdir."*.jpg");
foreach($images as $imagesm) {
print "$imagesm";
}
}

Here is the final working code if someone is interested

$mydir = 'images/gallery'; 
$subdirs = array_filter(glob($mydir . '/*'), 'is_dir');
foreach($subdirs as $dir){
  echo '<b>'.basename($dir).'</b><br>';
  $images = glob($dir . '/*.jpg');
  foreach($images as $image)
  {
    echo basename($image).'<br/>';
  }
}
  • 写回答

4条回答 默认 最新

  • duanchi0897 2016-02-08 10:40
    关注

    You can make a $numFolders variable that is the number of folders you have, then use a for loop:

    $numFolders = 3; //change this to reflect the number of folders
    
    for($i = 1; $i <= $numFolders; $i++){
        $dirname = "images/gallery/Project $i/";
        $images = glob($dirname."*.jpg");
        foreach($images as $imagesm) {
            print "$imagesm";
        }
    }
    

    This will loop through the code, going through each Project $i directory until it reaches the limit of $numFolders.


    Edit

    For unknown folder names:

    $root = "images/gallery/"; //your root folder
    
    $folders = scandir($root); //get all file/folder names
    
    foreach($folders as $f){
    
        //Check that $f is a valid directory
        if($f != "." && $f != ".." && is_dir($f)){
    
            //Get all files in the directory $f
            $images = glob($root.$f."*.jpg");
    
            //Print all images
            foreach($images as $i){
                print $i;
            }
        }
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法