Как вывести список файлов каталога на другом сервере, используя ssh2 - PullRequest
11 голосов
/ 12 января 2012

Я хотел бы перечислить файлы каталога на другом сервере

Я подключен к другому серверу с помощью функции ssh2_connect, соединение идет хорошо, и я могу получить нужный файл, ноне уверен, как файлы могут быть перечислены.

Любая помощь ценится!

Ответы [ 3 ]

35 голосов
/ 12 января 2012

Вы можете использовать ssh2_sftp и opendir , например:

<?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";
}
20 голосов
/ 05 декабря 2016

В случае, если кто-то изо всех сил пытается заставить это работать, и вы запускаете PHP 5.6.28, было недавнее обновление, которое либо создало требование, либо внесло ошибку, где intval() должен использоваться в каждой функции доступа к папке / файлу SFTP:

$handle = opendir("ssh2.sftp://".intval($sftp)."/path/to/directory");
1 голос
/ 12 января 2012

http://www.php.net/manual/en/function.ssh2-exec.php

Вы даете ей команду ls, предполагая, что это система на основе UNIX (обычно это так), в противном случае специфичная для OP команда, такая как dir для Windows.

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

$stream = ssh2_exec($connection, 'ls');
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...