/** * @param $path * @param string $filter * @param bool $recurse * @param bool $fullpath * * @return array */ static function readDirectory($path, $filter = '.', $recurse = FALSE, $fullpath = FALSE) { $arr = array(); if (!@is_dir($path)) { return $arr; } $handle = opendir($path); while ($file = readdir($handle)) { $dir = Bf_Filesystem::pathName($path . '/' . $file, FALSE); $isDir = is_dir($dir); if ($file != "." && $file != "..") { if (preg_match("/{$filter}/", $file)) { if ($fullpath) { $arr[] = trim(Bf_Filesystem::pathName($path . '/' . $file, FALSE)); } else { $arr[] = trim($file); } } if ($recurse && $isDir) { $arr2 = Bf_Filesystem::readDirectory($dir, $filter, $recurse, $fullpath); $arr = array_merge($arr, $arr2); } } } closedir($handle); asort($arr); return $arr; }