serendipochi
serendipochi

Reputation: 25

PHP - Remove '.' and '..' from values fetched from directory files

I am using this code in order to get a list files from directory:

$dir = '/restosnapp_cms/images/'; 
if ($dp = opendir($_SERVER['DOCUMENT_ROOT'] . $dir)) { 
    $files = array(); 
    while (($file = readdir($dp)) !== false) { 
        if (!is_dir($dir . $file)) { 
            $files[] = $file; 
        } 
    } 
    closedir($dp); 
} else { 
    exit('Directory not opened.'); 
}

I want to get rid of the values '.' and '..'.

Screenshot

Is it possible to do this? Thank you. :)

Upvotes: 1

Views: 57

Answers (2)

prodigitalson
prodigitalson

Reputation: 60413

DirectoryIterator is much more fun than *dir functions:

$dir = new DirectoryIterator($_SERVER['DOCUMENT_ROOT'] . $dir);
foreach($dir as $file) {
   if (!$file->isDir() && !$file->isDot()) {
      $files[] = $file->getPathname();
   }
}

But the bottomline is regardless of which way you do it, you need to use a conditional.

Upvotes: 1

Barmar
Barmar

Reputation: 781751

Just check for them first:

while ($file = readdir($p)) {
    if ($file == '.' || $file == '..') {
        continue;
    }
    // rest of your code
}

Upvotes: 6

Related Questions