PHP Conference Japan 2024

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 条注释

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

如果您位于防火墙之后,ftp_mlsd 将返回 FALSE。
andy at sarver dot pro
1 年前
我还没有找到解决方法;但我注意到 ftp_mlsd 命令一次获取的文件数量有限。对我来说,范围在 7500 到 8500 个文件之间。在我看来,它似乎有一些最大查询时间,而您得到的结果取决于文件枚举的速度。
Frank Glck
1 年前
有时需要设置

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

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