Get the files inside a directory

php

Solution

There's a lot of ways. The older way is `scandir` but `DirectoryIterator` is probably the best way.

There's also `readdir` (to be used with `opendir`) and `glob`.

Here are some examples on how to use each one to print all the files in the current directory:

`DirectoryIterator` usage: (recommended)

foreach (new DirectoryIterator('.') as $file) {
    if($file->isDot()) continue;
    print $file->getFilename() . '<br>';
}

`scandir` usage:

$files = scandir('.');
foreach($files as $file) {
    if($file == '.' || $file == '..') continue;
    print $file . '<br>';
}

`opendir` and `readdir` usage:

if ($handle = opendir('.')) {
    while (false !== ($file = readdir($handle))) {
        if($file == '.' || $file == '..') continue;
        print $file . '<br>';
    }
    closedir($handle);
}

`glob` usage:

foreach (glob("*") as $file) {
    if($file == '.' || $file == '..') continue;
    print $file . '<br>';
}

As mentioned in the comments, `glob` is nice because the asterisk I used there can actually be used to do matches on the files, so `glob('*.txt')` would get you all the text files in the folder and `glob('image_*')` would get you all files that start with image_

Problem

How to get the file names inside a directory using PHP? I couldn't find the relevant command using Google, so I hope that this question will help those who are asking along the similar lines.

Original source

Related problems