ftp_mlsd

(PHP 7 >= 7.2.0, PHP 8)

ftp_mlsd返回给定目录中的文件列表

描述

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

参数

ftp

一个 FTP\Connection 实例。

directory

要列出的目录。

返回值

成功时返回一个包含指定目录中的文件信息的数组,错误时返回 false

变更日志

版本 描述
8.1.0 现在 ftp 参数期望一个 FTP\Connection 实例;以前,期望一个 资源

示例

示例 #1 ftp_mlsd() 示例

<?php

// 设置基本连接
$ftp = ftp_connect($ftp_server);

// 使用用户名和密码登录
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// 获取当前目录的内容
$contents = ftp_mlsd($ftp, ".");

// 输出 $contents
var_dump($contents);

?>

上面的示例将输出类似于以下内容

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"
  }
}

参见

添加备注

用户贡献的备注 3 备注

2
fantastory dot net at gmail dot com
3 年前
从脚本运行时,函数可能需要 ftp_pasv,以将服务器切换到被动模式。

如果您的网络位于防火墙之后,ftp_mlsd 将返回 FALSE,否则会返回。
0
andy at sarver dot pro
1 年前
我还没有找到这个问题的解决方案;但我注意到 ftp_mlsd 命令一次可以获取的文件数量有限。对我来说,它介于 7,500 到 8,500 个文件之间。在我看来,它有一个最大查询持续时间,你得到的结果取决于文件枚举的速度。
0
Frank Glck
1 年前
有时有必要设置

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

在你设置之前
ftp_pasv($this->connection_id, $state)
To Top