getMTime()][] = $fileinfo->getFilename(); } ksort($files); ?> isDot()) var_dump($fileinfo->getFilename()); } $it = new FilesystemIterator(__DIR__); foreach ($it as $fileinfo) { echo $fileinfo->getFilename() . "\n"; } $iterator = new DirectoryIterator(dirname(__FILE__)); foreach ( $iterator as $fileinfo ) { var_dump($fileinfo->current()); // would return object(DirectoryIterator) } $iterator = new FilesystemIterator(__DIR__, FilesystemIterator::CURRENT_AS_PATHNAME); foreach ( $iterator as $fileinfo ) { var_dump($iterator->current()) . "\n"; // Would return full path eg /www/examples/example.php } ?> isFile() == false || !in_array($file->getExtension(), $allowed_extensions)) { continue; } $datetime = new DateTime(); $datetime->setTimestamp($file->getMTime()); $out[] = [ 'title' => $file->getFilename(), 'size' => human_filesize($file->getSize()), 'modified' => $datetime->format('Y-m-d H:i:s'), 'extension' => $file->getExtension(), 'url' => $file->getPathname() ]; } $sort_by_date && usort($out, function ($a, $b) { return $a['modified'] > $b['modified']; }); return $out; } function human_filesize($bytes, $decimals = 2) { $sz = 'BKMGTP'; $factor = floor((strlen($bytes) - 1) / 3); return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) . @$sz[$factor]; } // returns a file info array from path like '/files/123/*.extensions' // extensions = 'png', 'jpg', 'jpeg', 'gif', 'doc', 'docx', 'pdf', 'zip', 'rar', '7z' // OS specific sorting print_r( files_attachment_list(123) ); // returns a file info array from the folder '/files/456/*.extensions' // extensions = 'txt', 'zip' // sorting by modified date (newest first) print_r( files_attachment_list(456, true, ['txt','zip']) ); ?>