我正在尝试将文件从一台服务器扩展到另一台服务器。
$ftpHandle = ssh2_connect('ftp.remoteServer.net', 22)
ssh2_auth_password($ftpHandle, $userName, $password)
成功连接并登录后,我运行:
$dir = "/dl";
$handledir = opendir($dir);
但当然,这失败了......我不知道为什么。它说该文件夹不存在。 / dl是远程服务器上的绝对路径。
我感觉“opendir”正在我的本地服务器上(正在运行),而不是远程服务器。
这里的目标是查看此文件夹和DL文件夹中的每个文件。下载后,它可以将其从远程服务器上删除。
答案 0 :(得分:1)
重新阅读你的问题后,我认为问题是,你没有告诉opendir()它应该在SSH2连接上运行。默认情况下,它是本地文件系统,但您希望它在SSH连接上运行。
首先使用SSH连接initialize the SSH SFTP subsystem PHP Manual,然后通过SSH2 SFTP文件系统包装器访问资源:
$sftp = ssh2_sftp($ftpHandle);
$handledir = opendir("ssh2.sftp://$sftp$dir");