0

So. I'm trying to make a simple PHP program that will read the contents of a directory. I've been working off W3Schools. And it's been working well, except for one small problem.

When this script runs, it posts two additional filen that don't exist - even if the directory is completely empty .

<?php
$dir = "./userphotos/";

// Open a directory, and read its contents
if (is_dir($dir)){
   if ($dh = opendir($dir)){
     while (($file = readdir($dh)) !== false){
print <<< HERE

    <p>Filename: $file</p>

HERE;
    }
    closedir($dh);
  }
}

?>

Any thoughts?

1 Answers1

0

On Unix machines, each directory contains 2 hidden files.

. and .. these are references to the current and parent directories.

You should look into DirectoryInterator class

$dir = "./userphotos/";

foreach (new DirectoryIterator($dir) as $fileInfo) {
    if($fileInfo->isDot() === false) {
        echo $fileInfo->getFilename() . "<br>\n";
    }
}

This example ignores the "dot" files

Also, you can look into RecursiveDirectoryIterator to do this recursively.

MajorCaiger
  • 1,893
  • 1
  • 12
  • 18