Monatliches Archiv: September 2011

Über PHP Datei über FTP übertragen

Mit PHP ist es relativ einfach über ein PHP-Script Dateien über FTP zu übertragen. Jedoch müssen wir vor der FTP-Übertragung noch einige vorarbeiten in PHP Leisten.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# FTP Host
$host = 'example.org';
# FTP-Benutzer
$user = 'example';
# FTP Passwort
$password = 'secret';
# Name der Datei die übertragen werden soll
$file = 'dateiname/mit/pfadangabe/und.endung';
# Name der Datei auf dem Remoteserver
$remote_file = 'dateiname.endung';
# Pfad auf dem Remote Server
$remote_path = '/htdocs/';

# FTP-Verbindung herstellen
$connection = ftp_connect($host);
# Login
ftp_login($connection, $user, $password);
# Verzeichnis wechseln
ftp_chdir($connection, $remote_path);
# Datei übertragen
ftp_put($connection, $remote_file, $file, FTP_BINARY);
# Verbindung schließen
ftp_close($connection);

Wie man an dem Script sehen kann ist es relativ einfach ein PHP-Script zu schreiben was eine Datei über FTP überträgt. Zu beachten ist dass die Datei für den Webserver (bzw. PHP) lesbar ist sonst kann diese nicht über FTP übertragen werden. Während der FTP können natürlich auch noch Fehler abgefangen werden, was relativ einfach ist und dem folgenden Beispiel folgt. Dies geht für alle FTP-Befehle.

1
2
3
if(!ftp_put($connection, $remote_file, $file, FTP_BINARY)){
echo 'Das PHP-Script hat bei der FTP-Übertragung einen Fehler festgestellt';
}

Es gibt noch einige andere Befehle mit denen über PHP mit einer FTP-Verbindung gearbeitet werden kann. Zu nennen ist hier auf jeden Fall noch ftp_delete($connection, $filename); mit dem eine Datei auf dem Remote-Server gelöscht werden kann.