Get filenames of images in a directory

18,292

Solution 1

It's certainly possible. Have a look at the documentation for opendir and push every file to a result array. If you're using PHP5, have a look at DirectoryIterator. It is a much smoother and cleaner way to traverse the contents of a directory!

EDIT: Building on opendir:

$dir = "/etc/php5/";

// Open a known directory, and proceed to read its contents
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        $images = array();

        while (($file = readdir($dh)) !== false) {
            if (!is_dir($dir.$file)) {
                $images[] = $file;
            }
        }

        closedir($dh);

        print_r($images);
    }
}

Solution 2

'scandir' does this:

$images = scandir($dir);

Solution 3

One liner :-

$arr = glob("*.{jpg,gif,png,bmp}", GLOB_BRACE) 

Solution 4

glob in php - Find pathnames matching a pattern

<?php
    //path to directory to scan
    $directory = "../images/team/harry/";
    //get all image files with a .jpg extension. This way you can add extension parser
    $images = glob($directory . "{*.jpg,*.gif}", GLOB_BRACE);
    $listImages=array();
    foreach($images as $image){
        $listImages=$image;
    }
?>
Share:
18,292
Hammad Khalid
Author by

Hammad Khalid

Updated on July 27, 2022

Comments

  • Hammad Khalid
    Hammad Khalid almost 2 years

    What should be done to get titles (eg abc.jpg) of images from a folder/directory using PHP and storing them in an array.

    For example:

    a[0] = 'ac.jpg'
    a[1] = 'zxy.gif'
    

    etc.

    I will be using the array in a slide show.

  • jscripter
    jscripter about 9 years
    scandir is safest than glob because directory can contain regex chars
  • elbowlobstercowstand
    elbowlobstercowstand almost 9 years
    Why is this not the accepted answer?! Beautiful one liner.
  • arslion
    arslion over 7 years
    its also returning "." and ".." any better way to skip it in a loop?