phpseclib - php 版本的问题
phpseclib - issues with php versions
运行 在 PHP 5.2.13 上工作正常:
显示每行输出..
include('includes/Net/SSH2.php');
$ssh = new Net_SSH2('127.0.0.1');
if (!$ssh->login('root', 'password')) {
exit('Login Failed');
}
function packet_handler($str)
{
echo $str;
}
$ssh->exec('ping 127.0.0.1', 'packet_handler');
运行 PHP 5.3.17 returns 没有相同的代码。
我必须使用类似
的东西
echo $ssh->exec('timeout 5 ping 127.0.0.1');
并等待它超时。
知道为什么这在新版本上不起作用吗?
谢谢
尝试使用新的 NET_SSH2 版本。我使用了 composer,您的代码对我来说效果很好(我的本地 PC 上有 PHP 5.6)。我的步骤是:
1) 我创建了新的空文件夹
2) 运行作曲家:
composer require "phpseclib/phpseclib"
这将创建 vendor
文件夹,NET_SSH2 版本 = 0.3.9
3) 然后我更改了你的源代码(用于 composer autoload):
require 'vendor/autoload.php';
$ssh = new Net_SSH2('127.0.0.1');
if (!$ssh->login('root', 'password')) {
exit('Login Failed');
}
function packet_handler($str) {
echo $str;
}
$ssh->exec('ping 127.0.0.1', 'packet_handler');
并且一切正常。我认为您遇到问题是因为您使用的是旧库版本。您可以尝试使用 composer 或从 GitHub.
下载新的库版本
希望对您有所帮助。
运行 在 PHP 5.2.13 上工作正常:
显示每行输出..
include('includes/Net/SSH2.php');
$ssh = new Net_SSH2('127.0.0.1');
if (!$ssh->login('root', 'password')) {
exit('Login Failed');
}
function packet_handler($str)
{
echo $str;
}
$ssh->exec('ping 127.0.0.1', 'packet_handler');
运行 PHP 5.3.17 returns 没有相同的代码。
我必须使用类似
的东西echo $ssh->exec('timeout 5 ping 127.0.0.1');
并等待它超时。
知道为什么这在新版本上不起作用吗?
谢谢
尝试使用新的 NET_SSH2 版本。我使用了 composer,您的代码对我来说效果很好(我的本地 PC 上有 PHP 5.6)。我的步骤是:
1) 我创建了新的空文件夹
2) 运行作曲家:
composer require "phpseclib/phpseclib"
这将创建 vendor
文件夹,NET_SSH2 版本 = 0.3.9
3) 然后我更改了你的源代码(用于 composer autoload):
require 'vendor/autoload.php';
$ssh = new Net_SSH2('127.0.0.1');
if (!$ssh->login('root', 'password')) {
exit('Login Failed');
}
function packet_handler($str) {
echo $str;
}
$ssh->exec('ping 127.0.0.1', 'packet_handler');
并且一切正常。我认为您遇到问题是因为您使用的是旧库版本。您可以尝试使用 composer 或从 GitHub.
下载新的库版本希望对您有所帮助。