PHP 8.4.1 Released!

ftp_mlsd

(PHP 7 >= 7.2.0, PHP 8)

ftp_mlsdLiefert eine Liste der Dateien im angegebenen Verzeichnis

Beschreibung

ftp_mlsd(FTP\Connection $ftp, string $directory): array|false

Parameter-Liste

ftp

Eine FTP\Connection-Instanz.

directory

Das Verzeichnis, das aufgelistet werden soll.

Rückgabewerte

Gibt bei Erfolg ein Array mit Dateiinfos aus dem angegebenen Verzeichnis zurück oder false im Fehlerfall.

Changelog

Version Beschreibung
8.1.0 Der Parameter ftp erwartet nun eine FTP\Connection-Instanz; vorher wurde eine Ressource erwartet.

Beispiele

Beispiel #1 ftp_mlsd()-Beispiel

<?php

// Verbindung aufbauen
$ftp = ftp_connect($ftp_server);

// Login mit Benutzername und Passwort
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// Den Inhalt des aktuellen Verzeichnisses abrufen
$inhalt = ftp_mlsd($ftp, ".");

// $inhalt ausgeben
var_dump($inhalt);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(5) {
  [0]=>
  array(8) {
    ["name"]=>
    string(1) "."
    ["modify"]=>
    string(14) "20171212154511"
    ["perm"]=>
    string(7) "flcdmpe"
    ["type"]=>
    string(4) "cdir"
    ["unique"]=>
    string(11) "811U5740002"
    ["UNIX.group"]=>
    string(2) "33"
    ["UNIX.mode"]=>
    string(4) "0755"
    ["UNIX.owner"]=>
    string(2) "33"
  }
  [1]=>
  array(8) {
    ["name"]=>
    string(2) ".."
    ["modify"]=>
    string(14) "20171212154511"
    ["perm"]=>
    string(7) "flcdmpe"
    ["type"]=>
    string(4) "pdir"
    ["unique"]=>
    string(11) "811U5740002"
    ["UNIX.group"]=>
    string(2) "33"
    ["UNIX.mode"]=>
    string(4) "0755"
    ["UNIX.owner"]=>
    string(2) "33"
  }
  [2]=>
  array(8) {
    ["name"]=>
    string(11) "public_html"
    ["modify"]=>
    string(14) "20171211171525"
    ["perm"]=>
    string(7) "flcdmpe"
    ["type"]=>
    string(3) "dir"
    ["unique"]=>
    string(11) "811U5740525"
    ["UNIX.group"]=>
    string(2) "33"
    ["UNIX.mode"]=>
    string(4) "0755"
    ["UNIX.owner"]=>
    string(2) "33"
  }
  [3]=>
  array(8) {
    ["name"]=>
    string(10) "public_ftp"
    ["modify"]=>
    string(14) "20171211174536"
    ["perm"]=>
    string(7) "flcdmpe"
    ["type"]=>
    string(3) "dir"
    ["unique"]=>
    string(11) "811U57405EE"
    ["UNIX.group"]=>
    string(2) "33"
    ["UNIX.mode"]=>
    string(4) "0755"
    ["UNIX.owner"]=>
    string(2) "33"
  }
  [4]=>
  array(8) {
    ["name"]=>
    string(3) "www"
    ["modify"]=>
    string(14) "www"
    ["perm"]=>
    string(7) "flcdmpe"
    ["type"]=>
    string(3) "dir"
    ["unique"]=>
    string(11) "811U5740780"
    ["UNIX.group"]=>
    string(2) "33"
    ["UNIX.mode"]=>
    string(4) "0755"
    ["UNIX.owner"]=>
    string(2) "33"
  }
}

Siehe auch

  • ftp_rawlist() - Liefert eine detaillierte Liste der Dateien im angegebenen Verzeichnis
  • ftp_nlist() - Liefert eine Liste der im angegebenen Verzeichnis enthaltenen Dateien

add a note

User Contributed Notes 3 notes

up
2
fantastory dot net at gmail dot com
3 years ago
When running from script the function may require ftp_pasv, for swithching server to pasive mode.

If you are behind firewall ftp_mlsd will return FALSE otherwise.
up
0
andy at sarver dot pro
1 year ago
I have yet to find a resolution to this; but I notice the ftp_mlsd command is limited in the number of files it will grab at once. For me it ranged between 7,500 and 8,500 files. Seems to me there is some max duration it will query for and what you get is a function of how fast the files can be enumerated.
up
0
Frank Glck
1 year ago
sometimes it is necessary to set:

ftp_set_option($this->connection_id, FTP_USEPASVADDRESS, false)

before you set:
ftp_pasv($this->connection_id, $state)
To Top