public static function getFiles($dir, $filter = ".", $recursive = true, $exclude = array(".svn", "CVS", ".", "..")) { $files = array(); if (is_dir($dir)) { $dh = opendir($dir); if ($dh !== false) { while (($dirItem = readdir($dh)) !== false) { $file = $dir . DS . $dirItem; if (is_dir($file)) { if ($recursive && !in_array($dirItem, $exclude)) { $files = array_merge($files, SJB_Filesystem::getFiles($file, $filter, $recursive, $exclude)); } } else { if (preg_match("/{$filter}/", $dirItem) === 1) { $files[] = $file; } } } } else { SJB_Error::add("Open directory error '{$dir}'"); } } else { SJB_Error::add("Trying to take files from directory {$dir}"); } return $files; }