private function getDirContents($dir, $class, $func) { $files = scandir($dir); foreach ($files as $key => $value) { $path = realpath($dir . DIRECTORY_SEPARATOR . $value); // do not process virtual directories where path!=basePath if ($this->startsWith($path, $this->basePath)) { if (!is_dir($path)) { $extension = self::getExtension($path); if ($this->shouldProcessFile($extension)) { if ($this->resetNo > 1000) { set_time_limit(60); $this->resetNo = 0; } $this->resetNo += 1; $this->no += 1; $subpath = substr($path, $this->basePathLen); $class->{$func}($this->basePath, $subpath); } } else { if (is_dir($path) && $value != "." && $value != "..") { if ($this->processFolder($path)) { $this->getDirContents($path, $class, $func); } else { Logfile::writeWhen("Folder excluded: " . $path); } } } } else { Logfile::write("Virtual path ignored: " . $path); } } }