Aktueller Standort: Startseite> Neueste Artikel> So verwenden Sie die Funktion ftp_rawlist, um festzustellen, ob der FTP -Pfad eine Datei oder ein Verzeichnis ist

So verwenden Sie die Funktion ftp_rawlist, um festzustellen, ob der FTP -Pfad eine Datei oder ein Verzeichnis ist

gitbox 2025-06-15

So verwenden Sie die Funktion ftp_rawlist, um festzustellen, ob der FTP -Pfad eine Datei oder ein Verzeichnis ist

In PHP ist die Funktion ftp_rawlist ein sehr nützliches Tool und wird häufig zum Auflisten von Dateien und Unterverzeichnissen unter angegebenen Verzeichnissen im FTP -Server verwendet. Durch diese Funktion können wir eine detaillierte Liste von Dateien und Verzeichnissen auf dem FTP -Server erhalten, einschließlich Dateiberechtigungen, Dateigröße, letzter Änderungszeit und anderen Informationen. In einigen Fällen müssen wir feststellen, ob der FTP -Pfad eine Datei oder ein Verzeichnis ist. Zu diesem Zeitpunkt können wir die Ausgabeinformationen der Funktion ftp_rawlist verwenden, um Urteile zu fällen.

1. Einführung in die Funktion ftp_rawlist

Die Funktion der Funktion ftp_rawlist besteht darin, die Dateiliste des angegebenen Verzeichnisses im FTP -Server zu erhalten und die detaillierten Informationen der Liste zurückzugeben. Die grundlegende Syntax ist wie folgt:

 ftp_rawlist(ftp_stream, directory);
  • FTP_Stream : Eine gültige FTP -Verbindungsressource.

  • Verzeichnis : Der Pfad zur Datei oder zum Verzeichnis, die Sie auflisten möchten.

Diese Funktion gibt ein Array zurück, jedes Array -Element repräsentiert eine Informationszeile zu einer Datei oder einem Verzeichnis im FTP -Server. Das Format der Informationen ist in der Regel eine Liste im Unix-Stil, einschließlich Berechtigungen für Dateien oder Verzeichnisse, Eigentümer, Dateigrößen, Änderungszeit usw.

2. wie Sie bestimmen, ob es sich um eine Datei oder ein Verzeichnis handelt

Durch die von FTP_RAWLIST zurückgegebenen Daten können wir bestimmen, ob ein Pfad eine Datei oder ein Verzeichnis ist. Um solche Urteile zu fällen, hängt es normalerweise vom ersten Charakter jeder zurückgegebenen Informationszeile ab.

  • Wenn das erste Zeichen d ist, bedeutet dies, dass das Element ein Verzeichnis ist.

  • Wenn das erste Zeichen ist - bedeutet dies, dass es sich bei dem Element um eine Datei handelt.

Daher müssen wir nur den Inhalt der zurückgegebenen Zeile überprüfen, um den Pfadtyp zu bestimmen. Für bestimmte Implementierungen finden Sie im folgenden Code -Beispiel.

3. Beispielcode: So bestimmen Sie, ob ein FTP -Pfad eine Datei oder ein Verzeichnis ist

 <?php
// FTPVerbindungsinformationen
$ftp_server = "ftp.example.com";
$ftp_user_name = "username";
$ftp_user_pass = "password";

// Verbindung zuFTPServer
$conn_id = ftp_connect($ftp_server);

// EinloggenFTPServer
if (@ftp_login($conn_id, $ftp_user_name, $ftp_user_pass)) {
    echo "FTPVerbindung erfolgreich!<br>";

    // Setzen Sie den passiven Modus
    ftp_pasv($conn_id, true);

    // Der Weg zum Überprüfen
    $path = '/path/to/directory_or_file';

    // Holen Sie sich die Verzeichnisliste
    $file_list = ftp_rawlist($conn_id, dirname($path));

    // Überprüfen Sie, ob es sich um eine Datei oder ein Verzeichnis handelt
    $is_directory = false;
    $is_file = false;

    foreach ($file_list as $file_info) {
        // Dateiinformationen analysieren
        $parts = preg_split("/\s+/", $file_info);
        $file_name = $parts[count($parts) - 1];

        // Stellen Sie fest, ob es sich um ein Verzeichnis handelt
        if ($file_info[0] == 'd' && $file_name == basename($path)) {
            $is_directory = true;
            break;
        }

        // Bestimmen Sie, ob es sich um eine Datei handelt
        if ($file_info[0] == '-' && $file_name == basename($path)) {
            $is_file = true;
            break;
        }
    }

    // Ausgangsergebnis
    if ($is_directory) {
        echo "Weg $path Es ist ein Verzeichnis。<br>";
    } elseif ($is_file) {
        echo "Weg $path Es ist eine Datei。<br>";
    } else {
        echo "Weg $path Weder eine Datei noch ein Verzeichnis。<br>";
    }

    // SchließungFTPverbinden
    ftp_close($conn_id);
} else {
    echo "无法Verbindung zuFTPServer!<br>";
}
?>

4. Code Parsen

In diesem Beispiel stellen wir zunächst eine Verbindung zum FTP -Server her und melden uns an. Als nächstes verwenden wir die Funktion FTP_RAWLIST , um die Dateiliste des Verzeichnisses über dem angegebenen Pfad zu erhalten. Anschließend durchqueren wir die zurückgegebene Dateiliste und bestimmen, ob das Element eine Datei oder ein Verzeichnis basierend auf dem ersten Zeichen jeder Zeile ist. Schließlich werden wir die Ergebnisausgabe beurteilen.

5. Dinge zu beachten

  • Wenn der Pfad ein symbolischer Link ist, ist der von FTP_RAWLIST zurückgegebene Inhalt möglicherweise komplizierter und erfordert eine zusätzliche Verarbeitung.

  • Die Ausgabe von FTP_RAWLIST hängt normalerweise von der Konfiguration des FTP -Servers ab. Unterschiedliche FTP -Server können unterschiedliche Dateiinformationsformate zurückgeben, sodass die Analyseregeln nach dem jeweiligen Server angepasst werden müssen.

  • In diesem Beispiel geht davon aus, dass der Pfad ein direktes Kind einer Datei oder eines Verzeichnisses ist. Wenn der Zielpfad ein Unterverzeichnis enthält, muss ein rekursiver Aufruf an ftp_rawlist erforderlich sein, um weiter zu überprüfen.

6. Zusammenfassung

Über die Funktion ftp_rawlist können wir leicht bestimmen, ob der Pfad auf dem FTP -Server eine Datei oder ein Verzeichnis ist. Durch Parsen der zurückgegebenen Dateiinformationen und das Rechenum von D (Verzeichnis) oder - (Datei) basierend auf dem ersten Zeichen können wir genaue Urteile fällen. Diese Methode funktioniert auf den meisten FTP -Servern und kann uns helfen, Dateien und Verzeichnisse auf FTP besser zu verwalten.