phpseclib新的NET_SSH2不起作用

时间:2015-04-16 10:15:29

标签: php namespaces autoload phpseclib spl-autoload-register

我想在我的项目中使用phpseclib。如果我以单一方式测试它,它可以正常工作。但当我把它放在我的源代码中时,屏幕是空白的。

以下是代码的一部分:

<?php
namespace data;

spl_autoload_extensions('.php');
spl_autoload_register();

session_start();

//set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');

require '/phpseclib/Net/SSH2.php';
$ssh = new Net_SSH2('localhost'); // this will not work?

?>

我使用命名空间。当我加载SSH2.php与require它工作正常。但是在我用$ssh = new Net_SSH2('localhost');打开它时,代码崩溃了,屏幕是空白的。

目前我收到以下错误:

  

致命错误:未捕获的异常'LogicException',消息为'Class   无法加载Math_BigInteger   /var/www/test/phpseclib/Net/SSH2.php:857堆栈跟踪:#0 [内部   function]:spl_autoload('Math_BigInteger')#1   /var/www/test/phpseclib/Net/SSH2.php(857):   class_exists('Math_BigInteger')#2 /var/www/test/index.php(15):   Net_SSH2-&gt; Net_SSH2('localhost')#3 {main}引入   第857行/var/www/test/phpseclib/Net/SSH2.php

这是实际的代码:

namespace data;

error_reporting(E_ALL);

ini_set("display_errors", 1);

spl_autoload_extensions('.php');

spl_autoload_register();

session_start();

set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib'); 

require 'phpseclib/Net/SSH2.php';

$ssh = new \Net_SSH2('localhost');

1 个答案:

答案 0 :(得分:0)

屏幕可能是空白的,因为你将display_errors设置为1.如果你在PHP文件的顶部做ini_set('display_errors', 1);,你可能会开始看到错误。

代替了解您所遇到的错误我不得不猜测您需要\Net_SSH2代替Net_SSH2