如何在 codeigniter 中使用 phpseclib?

How to use phpseclib in codeigniter?

我将 phpseclib 文件放在我的 application/third_party 文件夹中,我已将路径包含在我的控制器中,如下所示

set_include_path(get_include_path() . PATH_SEPARATOR . 'third_party/phpseclib/Net/SSH2.php'); 

但是我无法创建那个 class 的 实例 。收到错误

class ssh2 not found

什么是最合适的使用方式phpseclib

在 github.com 上有两个分支(除了主分支)- 1.0 和 2.0。 2.0 已命名空间,因此您需要执行 \phpseclib\Net\SSH2.

调用

如果您从 phpseclib.sourceforge.net 下载 zip 文件,那么您是 运行 1.0 分支。如果那是您的 运行,您将需要更新包含路径。例如

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

如果您是 运行 2.0 分支(或主分支),则需要使用自动加载程序。示例:

<?php
// https://raw.githubusercontent.com/composer/composer/master/src/Composer/Autoload/ClassLoader.php

include('autoloader.php');

$loader = new \Composer\Autoload\ClassLoader();
$loader->addPsr4('phpseclib\', __DIR__.'/phpseclib');
$loader->register();

use \phpseclib\Crypt\RSA;

$rsa = new RSA();

经过大量研究,我终于找到了我的问题。问题是 - 我在设置 set_include_path 后没有添加包含路径。这是我所做的-
1. 我将 phpseclib 文件放在我的 application/third_party 文件夹中。
2. 在我的控制器中,我将包含路径设置为 set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');
3.设置路径后,我把路径包含为include_once(APPPATH.'third_party/phpseclib/Net/SFTP.php');
4. 现在我可以将我的实例创建为 $sftp = new Net_SFTP('your-host');
5. 并将我的服务器连接为 $sftp->login('user-name', 'password')