如何使用PHP通过FTP从文件获取chmod权限

问题描述 投票:1回答:1

我正在研究使用FTP的东西,但我需要获得每个文件的现有chmod权限。我怎样才能做到这一点?

我尝试过fileperms()函数,但这似乎只适用于本地文件。

php ftp
1个回答
0
投票

如果您使用的是PHP 7.2及更高版本且您的FTP服务器支持MLSD命令,那么很容易,因为您可以使用ftp_mlsd function

$conn_id = ftp_connect("ftp.example.com") or die("Cannot connect");
ftp_login($conn_id, "username", "password") or die("Cannot login");
ftp_pasv($conn_id, true) or die("Cannot change to passive mode");
$entries = ftp_mlsd($conn_id, "/remote/path") or die("Cannot list directory");

foreach ($entries as $entry)
{
    if (($entry["type"] != "cdir") && ($entry["type"] != "pdir"))
    {
        echo $entry["name"] . " - " . $entry["UNIX.mode"] . "\n";
    }
}

如果没有,则必须使用LIST命令并使用ftp_rawlist function解析服务器返回的专有格式。

以下代码采用通用的* nix格式。

$entries = ftp_rawlist($conn_id, "/remote/path") or die("Cannot list directory");

foreach ($entries as $entry)
{
    $tokens = explode(" ", $entry);
    $name = $tokens[count($tokens) - 1];
    $permissions = $tokens[0];
    echo $name . " - " . $permissions . "\n";
}
© www.soinside.com 2019 - 2024. All rights reserved.