ftp_get()
Was ist ftp_get()?
Die Funktion ftp_get() ist eine integrierte PHP-Funktion, die eine Datei vom FTP-Server abruft und in einer lokalen Datei speichert. Die Funktion benötigt fünf Parameter (drei erforderlich, zwei optional):
- ftp_stream: Die Verbindungs-ID, die von der Funktion ftp_connect() zurückgegeben wird.
- local_file: Der lokale Dateiname, in dem die abgerufenen Daten gespeichert werden sollen.
- remote_file: Der Dateiname auf dem Server, der vom FTP-Server abgerufen werden soll.
- mode: Der Übertragungsmodus. Verwenden Sie
FTP_BINARYfür Binärdateien oderFTP_ASCIIfür Textdateien. - resumepos: Die Startposition der Übertragung (Standardwert ist 0).
Die Funktion gibt einen booleschen Wert zurück. Wenn der Abruf der Datei erfolgreich war, gibt sie true zurück. Andernfalls gibt sie false zurück.
Syntax von ftp_get()
Die Syntax der Funktion ftp_get() lautet wie folgt:
Syntax von ftp_get() in PHP
bool ftp_get ( resource $ftp_stream , string $local_file , string $remote_file [, int $mode = FTP_BINARY [, int $resumepos = 0 ]] )Hinweis: Ab PHP 8.1 ist der Typ resource für FTP-Verbindungen zugunsten von Ftp\Connection-Objekten veraltet. Die Legacy-Syntax mit resource wird hier aus Kompatibilitätsgründen beibehalten.
Die Funktion ftp_get() benötigt fünf Parameter: ftp_stream, local_file, remote_file, mode und resumepos. Der Parameter ftp_stream ist die Verbindungs-ID, die von der Funktion ftp_connect() zurückgegeben wird. Der Parameter local_file ist der lokale Dateiname, in dem die abgerufenen Daten gespeichert werden sollen. Der Parameter remote_file ist der Dateiname auf dem Server, der vom FTP-Server abgerufen werden soll. Der Parameter mode ist ein optionaler Parameter, der den Übertragungsmodus angibt, und der Parameter resumepos ist ein optionaler Parameter, der die Startposition der Übertragung festlegt. FTP_BINARY wird für die meisten Dateien (Bilder, Archive, ausführbare Dateien) empfohlen, während FTP_ASCII nur für reine Textdateien benötigt wird und automatische Zeilenumbruch-Konvertierungen durchführt.
Verwendung von ftp_get()
Um die Funktion ftp_get() zu verwenden, müssen Sie zunächst eine Verbindung zum FTP-Server mit der Funktion ftp_connect() herstellen. Hier ist ein Beispiel:
Verwendung von ftp_get() in PHP
<?php
// Set up an FTP connection
$conn = @ftp_connect('ftp.example.com');
if (!$conn) {
die("Could not connect to FTP server.");
}
// Login with your FTP credentials
if (!ftp_login($conn, 'username', 'password')) {
die("Login failed.");
}
// Retrieve a remote file and save it to a local directory
if (ftp_get($conn, '/local/directory/local_file.txt', 'remote_file.txt', FTP_BINARY)) {
echo "File retrieved successfully.\n";
} else {
echo "Failed to retrieve the file.\n";
}
// Close the FTP connection
ftp_close($conn);In diesem Beispiel stellen wir eine Verbindung zum FTP-Server mit der Funktion ftp_connect() her und überprüfen den Erfolg. Anschließend melden wir uns mit unseren FTP-Zugangsdaten über die Funktion ftp_login() an und prüfen auf Anmeldefehler. Schließlich rufen wir eine Remote-Datei ab und speichern sie in einem lokalen Verzeichnis mit der Funktion ftp_get() im Modus FTP_BINARY und schließen die FTP-Verbindung.
Fehlerbehandlung in ftp_get()
Es ist wichtig, Fehler bei der Verwendung der Funktion ftp_get() ordnungsgemäß zu behandeln. Wenn die Funktion false zurückgibt, bedeutet dies, dass die Datei aus irgendeinem Grund nicht abgerufen werden konnte. Hier ist ein Beispiel, wie Fehler behandelt werden können:
Fehlerbehandlung in ftp_get()
<?php
if (ftp_get($conn, '/local/directory/local_file.txt', 'remote_file.txt', FTP_ASCII) === false) {
echo "Failed to retrieve the file.\n";
} else {
echo "File retrieved successfully.\n";
}In diesem Beispiel prüfen wir den Rückgabewert der Funktion ftp_get(). Wenn er false ist, wird eine Fehlermeldung angezeigt; andernfalls eine Erfolgsmeldung.
Fazit
Zusammenfassend lässt sich sagen, dass die Funktion ftp_get() eine nützliche integrierte PHP-Funktion ist, mit der Sie eine Datei von einem FTP-Server abrufen und in einer lokalen Datei speichern können. Durch die Befolgung der in diesem Artikel beschriebenen Richtlinien und Best Practices können Sie die Funktion ftp_get() in Ihren PHP-Projekten mit Sicherheit einsetzen.
Practice
Was macht die FTP_GET-Funktion in PHP?