Zum Inhalt springen

ftp_nb_get()

Verständnis der PHP-Funktion ftp_nb_get()

Die Funktion ftp_nb_get() ist eine integrierte PHP-Funktion, die eine Datei von einem FTP-Server im nicht-blockierenden Modus herunterlädt. Dieser Artikel bietet einen umfassenden Leitfaden zur Verwendung in Ihren PHP-Projekten.

Was ist ftp_nb_get()?

Die Funktion ftp_nb_get() startet einen asynchronen Dateidownload. Sie erfordert vier Parameter:

  1. ftp_stream: Die Verbindungs-ID, die von ftp_connect() zurückgegeben wird.
  2. local_file: Der lokale Dateipfad, in dem die heruntergeladene Datei gespeichert wird.
  3. remote_file: Der Pfad zur Remote-Datei auf dem FTP-Server.
  4. mode: Der Übertragungsmodus, entweder FTP_ASCII oder FTP_BINARY.

Sie akzeptiert außerdem einen optionalen fünften Parameter resumepos, der die Position in der Remote-Datei angibt, an der der Download beginnen soll (Standardwert ist 0).

Die Funktion gibt eine der drei Konstanten zurück: FTP_FINISHED bei Erfolg, FTP_MOREDATA, wenn sich der Transfer noch im Gange befindet, oder FTP_FAILED, wenn ein Fehler aufgetreten ist.

Syntax von ftp_nb_get()

Die Syntax der Funktion ftp_nb_get() lautet wie folgt:

Syntax von ftp_nb_get()

php
int ftp_nb_get ( resource $ftp_stream , string $local_file , string $remote_file , int $mode [, int $resumepos = 0 ] )

Die Funktion ftp_nb_get() benötigt vier erforderliche Parameter (ftp_stream, local_file, remote_file und mode) sowie einen optionalen Parameter (resumepos). Der Parameter ftp_stream ist die Verbindungs-ID, die von ftp_connect() zurückgegeben wird. Der Parameter local_file ist der Pfad zur lokalen Datei, in der die heruntergeladene Datei gespeichert wird. Der Parameter remote_file ist der Pfad zur Remote-Datei auf dem FTP-Server. Der Parameter mode gibt den Übertragungsmodus an, entweder FTP_ASCII oder FTP_BINARY. Der Parameter resumepos gibt die Position in der Remote-Datei an, an der der Download beginnen soll. Standardmäßig ist resumepos auf 0 gesetzt, was bedeutet, dass der Download am Anfang der Datei beginnt.

Verwendung von ftp_nb_get()

Um die Funktion ftp_nb_get() zu verwenden, müssen Sie zunächst eine Verbindung zum FTP-Server mit ftp_connect() herstellen. Hier ist ein Beispiel:

Verwendung von ftp_nb_get()

php
<?php

// Set up an FTP connection
$conn = ftp_connect('ftp.example.com');

// Login with your FTP credentials
ftp_login($conn, 'username', 'password');

// Initiate an asynchronous FTP operation
$result = ftp_nb_get($conn, 'local_file.txt', 'remote_file.txt', FTP_BINARY);

if ($result === FTP_FAILED) {
    echo "Failed to download file from remote server.\n";
} else {
    // Continue the asynchronous FTP operation
    while ($result === FTP_MOREDATA) {
        // Do something else while waiting for the FTP operation to complete
        $result = ftp_nb_continue($conn);
    }
}

// Close the FTP connection
ftp_close($conn);

In diesem Beispiel stellen wir eine Verbindung zum FTP-Server mit ftp_connect() her. Anschließend melden wir uns mit unseren FTP-Zugangsdaten über ftp_login() an. Wir starten einen asynchronen FTP-Vorgang mit ftp_nb_get(). Wir setzen den Vorgang innerhalb einer Schleife fort, die auf FTP_MOREDATA prüft, und verwenden dabei ftp_nb_continue(). Schließlich schließen wir die FTP-Verbindung.

Fehlerbehandlung in ftp_nb_get()

Es ist wichtig, Fehler bei der Verwendung der Funktion ftp_nb_get() ordnungsgemäß zu behandeln. Die Funktion gibt FTP_FAILED zurück, wenn der Download nicht erfolgreich war. Hier ist ein Beispiel für die Fehlerbehandlung:

Fehlerbehandlung in ftp_nb_get()

php
<?php

$result = ftp_nb_get($conn, 'local_file.txt', 'remote_file.txt', FTP_BINARY);

if ($result === FTP_FAILED) {
    echo "Failed to download file from remote server.\n";
}

while ($result === FTP_MOREDATA) {
    $result = ftp_nb_continue($conn);
}

ftp_close($conn);

Durch eine angemessene Fehlerbehandlung und die Überprüfung des Rückgabewerts auf FTP_FAILED können Sie den Erfolg Ihrer FTP-Operationen mit der Funktion ftp_nb_get() sicherstellen.

Fazit

Zusammenfassend lässt sich sagen, dass die Funktion ftp_nb_get() ein nützliches Werkzeug zum Herunterladen von Dateien von einem FTP-Server im nicht-blockierenden Modus ist.

Praxis

What is the function of the PHP FTP_NB_CONTINUE command?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.