class SVN_WorkspaceIterator extends FilterIterator { protected $ext = ".svn"; public function __construct (DirectoryIterator $iterator) { parent::__construct($iterator); } public function accept() { return ( ($this->isDir()) && (!$this->isDot()) && file_exists($this->getPathname().'/'.$this->ext)); } } $dir = new SVN_WorkspaceIterator(new DirectoryIterator("/var/www")); foreach ($dir as $v) { echo $v->getFilename(); echo "\n"; }