Das klappt soweit alles bestens, für all die, die jedoch nicht wissen was sie mit de Klasse machen sollen und einfach nur erstmal die Dateien runterziehen wollen, hier nochmal das 'gleiche' evtl. ein wenig einfacher, das zum reinen c&p reicht.
- Code: Alles auswählen
$source='http://srv04.uga-agga.de/upload/caves.gz';
$today = date("YmdHis");
$destdirold='./old_caves';
$destnameold='caves'.$today.'.gz';
$destdir='./caves';
function upload($file)
{
global $destnameold;
global $destdir;
global $destdirold;
$result;
$file_url = parse_url($file);
$fsock = fsockopen($file_url['host'], 80, $errno, $errstr, 30);
if (!$fsock){
return false;
}
if(!$fsock){
echo 'Konnte keine Fsocket-Verbindung aufbauen.<br />';
exit();
}
$header = "GET ".$file_url['path']." HTTP/1.0".chr(10);
$header .= "HOST: " . $file_url['host'].chr(10);
$header .= "Connection: close".chr(10).chr(10);
fwrite($fsock, $header);
$file = trim(fgets($fsock, 4096));
if (!strpos($file, "200")){
fclose($fsock);
echo 'Falsche Daten '.date("ymd").'<br>';
return FALSE;
}
while (trim(fgets($fsock, 4096)) != "");
while(!feof($fsock)){
$result .= fgets($fsock, 128); // Antwort lesen
}
fclose($fsock);
if (!($lp = fopen('./caves/caves.gz', 'w')))
return;
fwrite($lp, $result);
fclose($lp);
$dest=$destdirold.'/'.$destnameold;
if (!($lp = fopen($dest, 'w')))
return;
fwrite($lp, $result);
fclose($lp);
}
Diese Funktion wird dann einfach mittels upload() aufgerufen. Sie speichert die caves.gz einmal in dem Ordner /caves und macht gleich noch eine Kopie in den Ordner /old_caves, der als Archiv dient.
Die Kopie erhält ausserdem das Datum als Teil des Dateinamens, damit keine alten Daten überschrieben werden. Wo gespeichert werden soll ist ganz am anfang angegeben:
$destdirold='./old_caves';
$destnameold='caves'.$today.'.gz';
$destdir='./caves';
Nat. müssen die Verzeichnisse /caves + /old_caves vorher von euch auf dem Webspace angelegt werden und mit entsprechenden rechten versehen werden. Die php. Datei, muss in der jetzigen Form in dem Verzeichnis liegen, von dem /caves und /old_caves dann direkte Unterverzeichnisse sind.
Naja, generell gilt wohl zu sagen, der Weg mit der Klasse von SD ist 'schöner'. Ich wollte nurmal was posten, was alles beinhält, runterladen + wegschrieben als einfache Funktion...
Grüsse 'Stella