function forEachSubFile($func, $params, $root, $incfilter = array(), $excfilter = array("ZZZZ"))
{
    $dh = opendir($root);
    while (false !== ($dirname = readdir($dh))) {
        if (is_dir($root . "/" . $dirname) && !in_array($dirname, array(".", "..", ".svn"))) {
            $dirh = opendir($root . "/" . $dirname);
            while (false !== ($filename = readdir($dirh))) {
                $thisfile = $root . "/" . $dirname . "/" . $filename;
                if (is_dir($thisfile)) {
                    continue;
                }
                if (anyMatch($thisfile, $excfilter)) {
                    continue;
                }
                if (!matchAll($thisfile, $incfilter)) {
                    continue;
                }
                if (wordlistShouldBeSplit($thisfile, $params)) {
                    splitWordlist($thisfile, $filename, $func, $params);
                } else {
                    $func($thisfile, $params);
                }
            }
        }
    }
}
            $func($params['wordlist'], $params);
        }
        break;
    case 5.4:
        $params = array();
        $params["rules"] = 1;
        $params['wordlist'] = 'build/wordlists/extralarge/nsfw_ascii_art.txt';
        if (getAppZip()) {
            $params['wordlist'] .= ".xz";
        }
        $params["wordlist-flags"] = JOHN_WL_FORLOWERCASE | HASHCAT_WL_238K | CUDAHASHCAT_WL_238K;
        $func = create_function('$filename, $params', '
			global $wordlist_stamped, $app;
			$wordlist_stamped = copyfile($filename, "wl");
			$params["wordlist"] = $filename;
			writeJob($params);
			');
        if (wordlistShouldBeSplit($params['wordlist'], $params)) {
            splitWordlist($params['wordlist'], basename($params['wordlist']), $func, $params);
        } else {
            $func($params['wordlist'], $params);
        }
        break;
    default:
        echo "This phase is not implemented.\n";
        break;
}
fwrite($f, "rm createWorkScript\n");
//fwrite($f,"chown -R apache download/\n");
fclose($f);
echo "\ndone, created " . ($jobNum - 1) . " jobs\n";