我们试图仅从远程服务器移动文件并将文件目录放入我们的数据库中,因此我们需要能够区分文件和目录。我们已经成功地能够通过 SSH2 进行连接,并且能够读取和显示远程路径顶级目录中的文件和目录。但是,我们无法找到一个 php 脚本,它可以让我们找到返回的名称是目录还是文件。下面是我们尝试过的几个例子。非常感谢任何帮助,我们提前感谢您。
$connection = ssh2_connect('www.myremote.com', 22);
ssh2_auth_password($connection, 'user', 'pw');
$sftp = ssh2_sftp($connection);
// THIS WORKS NICELY TO DISPLAY NAME FROM REMOTE SERVER
$handle = opendir("ssh2.sftp://$sftp/remotepath/");
echo "Directory handle: $handle<br>";
echo "Entries:<br>";
while (false != ($entry = readdir($handle))){
echo "$entry<br>";
}
// ONE OPTION THAT DOES NOT WORK
$handle = opendir("ssh2.sftp://$sftp/remotepath/");
echo "<br><br>2Directory handle: $handle<br>";
echo "4Entries:<br>";
while (false != ($entry = readdir($handle))){
if (is_dir(readdir($handel.''.$entry) ) ) {echo "<strong>$entry</strong><br>"; } else {
echo "$entry<br>"; //}
}
// ANOTHER OPTION THAT RETURNS AN EMPTY RESULT
$files = scandir('ssh2.sftp://'.$sftp.'/remotepath/');
foreach ($files as $file):
if (is_dir('ssh2.sftp://'.$sftp.'/remotepath/'.$file) ) {"<strong>".$file."</strong><br>"; } else { $file.'<br>'; }
endforeach;