Pregunta Cómo listar archivos de un directorio en otro servidor usando ssh2


Me gustaría enumerar los archivos de un directorio en otro servidor

Estoy conectado a otro servidor con la función ssh2_connect, la conexión funciona bien y puedo buscar el archivo deseado, pero no estoy seguro de cómo se pueden enumerar los archivos.

¡Cualquier ayuda es appriciated!


10
2018-01-12 19:11


origen


Respuestas:


Puedes usar ssh2_sftp y opendir, Me gusta esto:

<?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";
}

32
2018-01-12 19:43



En caso de que alguien esté luchando para que esto funcione, y usted está corriendo PHP 5.6.28 hubo una actualización reciente que creó un requisito o introdujo un error donde intval() se debe usar en cada función de acceso de carpeta / archivo SFTP:

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

20
2017-12-05 10:54



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

Usted le da el ls comando, suponiendo que es un sistema basado en UNIX (generalmente el caso), de lo contrario, el comando específico de OP como dir para ventanas.

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

$stream = ssh2_exec($connection, 'ls');
?>

1
2018-01-12 19:17