daten von ftp a nach b

ChuloGT

Mitglied
Also sitzte schon seit gestern an dem problem und bin kein stück weitergekommen! Ich dachte mir das ich jetzt das problem vom neuen angehe

Ich will alle daten, auch die in den unterverzeichnissen, die auf einem fremden server sind (zugriffsrechte bestehen) auf meinen server kopieren!

Wie würdet Ihr die "Aufgabe" lösen?
 
ja, das script liegt auf dem zielserver, also auf meinem server!

Ich habe es geschaft daten zu kopieren, bloß die daten in den unterverzeichnissen schaffe ich nicht zu kopieren ...
 
Also da musst du ja eigentlich nur die Verzeichnisstruktur durchlaufen und die Dateien nacheinander herunterladen. Kann dir jetzt leider nicht mit Code helfen, wie du die Verzeichnisse automatisch durchläufst, aber wird kein großes Ding sein, so daß dir bestimmt jemand anderes helfen kann.

Falls es dir nur darum geht, diese Daten zu kopieren, kann ich dir eine Alternative anbieten:

http://www.flashfxp.de - Kann Dateien direkt von einem FTP zum anderen flashen
 
Ah und ich kann dir noch was anbieten:

http://www.ip-index.de/fxp-software-center/fxpsc/phpfxp_3.zip

Mit PHPFXP ist "FXP"-Transfer zwischen verschiedenen Protokollen (ftp, http, https...) möglich. Es handelt sich allerdings nicht um echtes FXP. Das Script muss auf einem (natürlich PHP-fähigen) Server liegen und lädt die Files vom Quellserver und uppt sie anschliessend auf den Zielserver. Daher muss dort wo das Script liegt natürlich auch noch genügend Platz für die jeweils grösste zu übertragende Datei frei sein.
 
das ist mir schon klar, aber trotzdem klappt das was ich mache nicht so sehr! Jetzt hab ichs hinbekommen das er mir das ausgibt was ich brauche, aber das klappt och nicht habe ich gemerkt!


Oder kens du ne möglichkeit mittels cript alle daten eines servers auf einen server von dir zu kopieren, auch die in unterverzeichnissen?

Das gemacht ist cronjob kein problem mehr :-/
 
Hier Das Main-Script

PHP:
$basedir = "";
 
if ((!$verbindung) || (!$login_result)) //öffnen der Quellverbindung
	 { 
			echo "Ftp-Verbindung nicht hergestellt!";
			echo ("Verbindung mit <B>".$ftp_server."</B> als Benutzer <B>".$user."</B> nicht möglich"); 
			die; 
	 } else {
		 echo ("Verbunden mit <B>".$ftp_server."</B> als Benutzer <B>".$user."</B>.");
		 $files = ftp_nlist($verbindung,$basedir);
		 echo "<BR>Verzeichnissstruktur des Hauptverzeichnisses:<BR>";
		 foreach ($files as $pfiles)
		 {
		 echo $pfiles;
		echo "<BR><BR><BR><BR>";
		 }
		 echo "Beginne Die Daten vom FTP-Server zu Kopieren<BR><BR>";
		 echo ausgeben_array ($files, $verbindung);
 
	 }

Hier Die Funktion ausgeben_array
PHP:
 function ausgeben_array($auslesen, $verbindung)
{
foreach ($auslesen as $al)
		 {
			//echo "<pre>";
			//echo $al;
			//echo "</pre>";
			$fileal = ftp_size($verbindung, $al); 
			if ($fileal == -1)
			{
			 include('changedir.php');
			}
			 else echo 'Datei';
			 daten_kopieren ($verbindung, $al);
		 }
}

Hier die Funktion daten_kopieren
PHP:
function daten_kopieren ($verbindung, $sarray)
{
if (ftp_get($verbindung, $sarray, $sarray, FTP_BINARY)) 
	 {
		 $groesse = filesize ($sarray);
		 echo "<B>$sarray\n</B> ($groesse Bytes) wurde erfolgreich geschrieben";
		 echo "<BR><BR>";
		$darray1 = reverse_strrchr ("$sarray", "v"); //umbennenen der Datei *.csv.gz nach *.csv
		file_ungzip ("$sarray", "$darray1"); //Entpacken der Datei *.csv.gz in die Datei *.csv
	 }
}

reverse_strrchr
PHP:
 function reverse_strrchr($haystack, $needle)
{
$pos = strrpos($haystack, $needle);
if($pos === false) {
	 return $haystack;
}
return substr($haystack, 0, $pos + 1);
}

file_ungzip
PHP:
 function file_ungzip($fromFile, $toFile) {
$zp = @gzopen($fromFile, "r");
$fp = @fopen($toFile, "w");
while(!@gzeof($zp)) 
{
	 $string = @gzread($zp, 4096); 
	 @fwrite($fp, $string, strlen($string));
}
@gzclose($zp);
@fclose($fp);
}

Also nur falls mal einer die Code-Schnippsel braucht! Hoffe cih hab nichts vergessen
 
Zurück