Example #1
0
 $xml = simplexml_load_string($xmlraw);
 $root = "";
 $memorypatch = false;
 if (isset($xml["root"])) {
     $root = $xml["root"];
 }
 foreach ($_POST as $option => $patchesraw) {
     if (!empty($patchesraw)) {
         $patches = explode(";", $patchesraw);
         foreach ($patches as $patchunique) {
             $patchnode = $xml->xpath("./patch[@id='{$patchunique}']");
             if (count($patchnode) > 0) {
                 foreach ($patchnode[0] as $replacementnode) {
                     switch ($replacementnode->getName()) {
                         case "file":
                             addReplacement($replacements, "files/" . $replacementnode['disc'], $sd . $root . $replacementnode['external']);
                             break;
                         case "folder":
                             $recursive = true;
                             if (isset($replacementnode['recursive'])) {
                                 if ($replacementnode['recursive'] == "false") {
                                     $recursive = false;
                                 }
                             }
                             $externalfull = $sd . $root . "/" . $replacementnode['external'];
                             if (isset($replacementnode['disc'])) {
                                 $prefix = "files/" . $replacementnode['disc'];
                             } else {
                                 $prefix = null;
                             }
                             folderScrape($replacements, $index, $externalfull, $recursive, false, $prefix, $externalfull);
Example #2
0
function folderScrape(&$replacements, $index, $directory, $resursive, $plainfile = false, $prefix = null, $external = null)
{
    if (isset($directory) && is_readable($directory)) {
        if ($resursive) {
            $directory = realpath($directory);
            $objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory));
            foreach ($objects as $entry => $object) {
                $entry = str_replace($directory, '', $entry);
                if (basename($entry) == "." || basename($entry) == "..") {
                    continue;
                }
                $externalfull = completeExternal($external, $entry);
                $discfull = completeDisc($index, $prefix, $entry, $externalfull);
                //verbose($externalfull . " >> " . $discfull);
                if (isset($discfull)) {
                    if ($plainfile) {
                        addPlain($replacements, $discfull);
                    } else {
                        addReplacement($replacements, $discfull, $externalfull);
                    }
                }
            }
        } else {
            $it = new DirectoryIterator($directory);
            foreach ($it as $entry) {
                if (!$it->isDot()) {
                    $externalfull = completeExternal($external, $entry);
                    $discfull = completeDisc($index, $prefix, $entry, $externalfull);
                    if (isset($discfull)) {
                        if ($plainfile) {
                            addPlain($replacements, $discfull);
                        } else {
                            addReplacement($replacements, $discfull, $externalfull);
                        }
                    }
                }
            }
        }
    }
}