Charles Yeung Charles Yeung - 1 year ago 82
PHP Question

How to get the file name under a folder?

Suppose I have a directory look like:

|_ a1.txt
|_ a2.txt
|_ a3.txt
|_ a4.txt
|_ a5.txt

How can I use PHP to get these file names to an array, limited to a specific file extension and ignoring directories?

Answer Source

You can use the glob() function:

Example 01:

  // read all files inside the given directory
  // limited to a specific file extension
  $files = glob("./ABC/*.txt");

Example 02:

  // perform actions for each file found
  foreach (glob("./ABC/*.txt") as $filename) {
    echo "$filename size " . filesize($filename) . "\n";

Example 03: Using RecursiveIteratorIterator

foreach(new RecursiveIteratorIterator( new RecursiveDirectoryIterator("../")) as $file) {
  if (strtolower(substr($file, -4)) == ".txt") {
        echo $file;
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download