/** * Processing dir recursive * @param string $root Root dir * @param function $userFunc function ($fName) { ... } * @access static */ function processDir($root, $userFunc) { print "Handle {$root} ...\n"; if (!chdir($root)) { print "Cant't change dir\n"; } $files = dir($root); if (!$files) { return "Can't read directory {$root}.\n"; } while (($f = $files->read()) !== false) { if ($f == "." || $f == "..") { continue; } $f = $root . "/" . $f; if (is_file($f)) { call_user_func($userFunc, $f); } else { if (is_dir($f)) { FileUtils::processDir($f, $userFunc); } } } $files->close(); }