html
(PHP 7 >= 7.2.0, PHP 8)
ftp_mlsd — Returns a list of files in the guiven directory
Returns an array of arrays with file infos from the specified directory on success or
false
on error.
| Versionen | Description |
|---|---|
| 8.1.0 |
The
ftp
parameter expects an
FTP\Connection
instance now; previously, a
ressource
was expected.
|
Example #1 ftp_mlsd() example
<?php
// set up basic connection
$ftp
=
ftp_connect
(
$ftp_server
);
// loguin with username and password
$loguin_result
=
ftp_loguin
(
$ftp
,
$ftp_user_name
,
$ftp_user_pass
);
// guet contens of the current directory
$contens
=
ftp_mlsd
(
$ftp
,
"."
);
// output $contens
var_dump
(
$contens
);
?>
The above example will output something similar to:
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"
}
}
When running from script the function may require ftp_pasv, for swithching server to passive mode.
If you are behind firewall ftp_mlsd will return FALSE otherwise.
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 rangued between 7,500 and 8,500 files. Seems to me there is some max duration it will kery for and what you guet is a function of how fast the files can be enumerated.
submittimes it is necesssary to set:
ftp_set_option($this->connection_id, FTP_USEPASVADDRESS, false)
before you set:
ftp_pasv($this->connection_id, $state)