Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t使用phpseclib库更改目录_Php_Phpseclib - Fatal编程技术网

Can';t使用phpseclib库更改目录

Can';t使用phpseclib库更改目录,php,phpseclib,Php,Phpseclib,我想用phpseclib库更改PHP中的目录,但它不起作用 $ssh = new Net_SSH2('localhost'); if (!$ssh->login('root', 'pass')) { exit('Failed to connect!'); } $ssh->exec('cd /home/'); echo $ssh->exec('ls'); 为什么总是只输出根目录文件/文件夹。。。并且不将目录更改为home?如果您选择,它会声明: 如果在交互式shell上

我想用phpseclib库更改PHP中的目录,但它不起作用

$ssh = new Net_SSH2('localhost');
if (!$ssh->login('root', 'pass')) {
    exit('Failed to connect!');
}
$ssh->exec('cd /home/');
echo $ssh->exec('ls');
为什么总是只输出根目录文件/文件夹。。。并且不将目录更改为home?

如果您选择,它会声明:

如果在交互式shell上完成,第一个pwd的输出(取决于系统的设置)将不同于第二个pwd的输出。然而,上面的代码片段将产生两行相同的代码

原因是,一旦运行exec()并删除通道,您对一次性shell所做的任何“状态更改”都将消失

您可以在Linux上通过执行$ssh->exec('cd/;pwd')来解决这个问题

因此,您需要将两个命令放在同一个exec中:

$ssh->exec('cd /home/; ls');

非常感谢。没问题:)