Benutzer-Werkzeuge

Webseiten-Werkzeuge


php:ftp

FTP (File Transfer Protokoll)

Allgemein

Mit dem File Transfer Protokoll können ASCII und Binär-Dateien unabhängig vom Betriebssystem auf einem Server Hoch- oder von einem Server Heruntergeladen werden. Folgende Daten werden i. d. R. benötigt, um sich in einem FTP-Account einzuloggen:

  • Servername oder IP-Adresse
  • Benutzername
  • Passwort
  • Port (der Standard-Port ist 21)

Die oben genannten Verbindungsdaten sind notwendig, damit der Client eine TCP-Verbindung mit dem Server aufbauen kann.

FTP mit PHP

PHP bietet folgende Funktionen für die Nutzung von FTP:

Funktionsbeschreibung Funktionsaufruf
Verbindung zum Server aufbauen ftp_connect();
Einloggen ftp_login();
Verbindung in Passiv-Modus versetzen ftp_pasv();
Liste der verfügbaren Dateien und Verzeichnisse abholen ftp_nlist();
Datei auf den Server hochladen ftp_put();
Datei vom Server herunterladen ftp_get();
Datei auf dem Server umbenennen ftp_rename();
Datei auf dem Server löschen ftp_delete();
Verbindung zum Server schließen ftp_close();

Beispiel

Hier wird eine Datei von einem FTP-Server heruntergeladen, dessen Inhalt in die Variable $content gespeichert und anschliessend gelöscht. Alternativ kann als 2. Parameter bei der Funktion „ftp_get“ auch ein lokaler Dateipfad mit Dateinamen übergeben werden, um die Datei ohne weitere Verarbeitung zu speichern.

<?PHP
	$conId = ftp_connect( $servername, $port ); // Verbindung aufbauen
 
	if( $conId !== false )
	{
	    if( ftp_login( $conId, $benutzername, $passwort ) ) // einloggen
            {
                ob_start();
		ftp_get( $conId, "php://output", $filename, FTP_ASCII ); // Datei herunterladen
		$content = ob_get_contents();
		ob_end_clean();
		ftp_delete( $filename );
            }
 
	    ftp_close( $conId );	
	}
?>

Troubleshooting

Sollte es bei der Verwendung von Funktionen wie z. B. ftp_nlist(); für das Abholen der Dateien und Verzeichnissen zu Problemen kommen könnte es helfen, die Verbindung nach dem Login in den Passiv-Modus zu versetzen:

     ftp_pasv( $connectId, true );
php/ftp.txt · Zuletzt geändert: 2020/11/27 11:11 von webproducer