static function getFileList($dir, $recurse = false) { // массив, хранящий возвращаемое значение $retval = array(); // добавить конечный слеш, если его нет if (substr($dir, -1) != "/") { $dir .= "/"; } // указание директории и считывание списка файлов $d = @dir($dir) or die("getFileList: Не удалось открыть каталог {$dir} для чтения"); while (false !== ($entry = $d->read())) { // пропустить скрытые файлы if ($entry[0] == ".") { continue; } if (is_dir("{$dir}{$entry}")) { $retval[] = "{$dir}{$entry}"; if ($recurse && is_readable("{$dir}{$entry}/")) { $retval = array_merge($retval, FileList::getFileList("{$dir}{$entry}/", true)); } } elseif (is_readable("{$dir}{$entry}")) { $retval[] = "{$dir}{$entry}"; } } $d->close(); return $retval; }