我正在使用FTP进行操作,但是我需要获取每个文件的现有chmod权限。我该如何实现?
我已经尝试过fileperms()
函数,但这似乎仅适用于本地文件。
答案 0 :(得分: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";
}
}
如果没有,则必须使用ftp_rawlist
function使用LIST
命令并解析服务器返回的专有格式。
以下代码假定使用通用的* 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";
}