$value) // echo "'".$key."': '".$value."'
\n"; // die(); function myBaseEncode(&$item, $key) { $item = base64_encode($item); if ($item == "") $item = "_"; } function myBaseDecode(&$item, $key) { if ($item == "_") $item = ""; $item = base64_decode($item); } $quelle = $_SERVER["REQUEST_URI"]; $wurzel = dirname(__FILE__)."/"; $datenWurzel = $wurzel."daten/"; $ea = fopen($wurzel."erlaubteAdressen","r"); while (! feof($ea)) { $zeile = trim(fgets($ea)); if ($zeile == "") { print $_SERVER["REMOTE_ADDR"]; die(); } if ($zeile == $_SERVER["REMOTE_ADDR"]) break; } if (substr($quelle,0,1) != "/") die("Ungültiger Pfad!"); $quelle = substr($quelle,1); if ($quelle == "") { exec("find '".$datenWurzel."' -type f -not \( -name .rsync-filter -or -name CACHEDIR.TAG \) | sort",$dateien); foreach ($dateien as $datei) { $pfad = explode("/",substr($datei,strlen($datenWurzel))); array_walk($pfad,"myBaseDecode"); $pfad = implode("/",$pfad); echo ". ".$pfad."
\n"; } } else { $pfad = explode("/",$quelle); array_walk($pfad,"myBaseEncode"); $pfad = implode("/",$pfad); $pfad = $datenWurzel.$pfad; $al = fopen($wurzel."access.log","a"); if (! $al) die("Kann 'access.log' nicht öffnen!"); fwrite($al,date('Y-m-d H:i:s')." ".$pfad."\n"); fclose($al); if (! file_exists($pfad)) { $inp = popen( "mkdir -p '".dirname($pfad)."'; ". "wget -O - '".$quelle."' | ". "tee \"".$pfad."\"", "r"); if (! $inp) die("kann wget nicht starten"); fpassthru($inp); pclose($inp); } else { $inp = fopen($pfad,"r"); if (! $inp) die("Kann '".$quelle."' ('".$pfad."') nicht &oouml;ffnen!"); while(!feof($inp)) { $buffer = fread($inp, 4096); print $buffer; } fclose($inp); } } exec("find /srv/sourceMirror/ -type f -size 0c -delete"); ?>