如何使用 ssh2 列出其他服务器中某个目录的文件

2022-08-30 22:33:36

我想列出其他服务器中某个目录的文件

我使用ssh2_connect功能连接到其他服务器,连接进展顺利,我能够获取所需的文件,但我不确定如何列出文件。


答案 1

您可以使用ssh2_sftpopendir,如下所示:

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$sftp = ssh2_sftp($connection);
$sftp_fd = intval($sftp);

$handle = opendir("ssh2.sftp://$sftp_fd/path/to/directory");
echo "Directory handle: $handle\n";
echo "Entries:\n";
while (false != ($entry = readdir($handle))){
    echo "$entry\n";
}

答案 2

如果有人正在努力使它工作,并且您正在运行,那么最近的更新要么创建了要求,要么引入了一个错误,必须在每个SFTP文件夹/文件访问功能上使用:PHP 5.6.28intval()

$handle = opendir("ssh2.sftp://".intval($sftp)."/path/to/directory");

推荐