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:
Die oben genannten Verbindungsdaten sind notwendig, damit der Client eine TCP-Verbindung mit dem Server aufbauen kann.
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(); |
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 ); } ?>
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 );