![](/img/trans.png)
[英]Can't get the same result for encryption with mcrypt and phpseclib
[英]I can't get phpseclib to work
我想使用php
通過sftp
upload
/ download
文件。 phpseclib-library
看起來非常有前途。
我將我的conposer.json改為:
{
"require": {
"nicolab/php-ftp-client":"*",
"php-curl-class/php-curl-class":"*",
"phpseclib/phpseclib":"*"
}
}
然后我更新了我的目錄。 Composer將庫安裝在vendor文件夾中。
問題是我無法創建新的SFTP-Object
。
Fatal error: Class 'SFTP' not found in...
我也嘗試使用NET_SFTP
作為類名,但這也不起作用。 有一點我不明白為什么在它上面 ,它聲明類名是NET_SFTP
當它在源中時它明顯稱為SFTP
。
自動加載似乎不起作用。
我添加了echo "testline";
到庫中查看文件是否已加載。 如果我使用自動加載,沒有任何反應。 如果我手動包含該文件,則打印"testline"
但仍未找到該類。
例一
<?php
include '/vendor/autoload.php';
$sftp = new SFTP('domain');
if (!$sftp->login('user', 'pass')) {
exit('Login Failed');
}
- >沒有回音
示例二:
<?php
set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib/phpseclib');
include('Net/SSH2.php');
include('Net/SFTP.php');
$sftp = new SFTP('www.domain.tld');
if (!$sftp->login('username', 'password')) {
exit('Login Failed');
}
- >回聲
在這兩個例子中,它都找不到課程。
我不明白的一件事是為什么在http://phpseclib.sourceforge.net/sftp/examples.html#stat上它聲明類名是NET_SFTP,當它在源中時它明顯稱為SFTP。
該網站正在記錄1.0分支。 2.0分支具有類似的API但不完全相同。 特別是,它是命名空間而1.0分支不是。
要修改你的第一個例子......
<?php
include '/vendor/autoload.php';
$sftp = new \phpseclib\Net\SFTP('domain');
if (!$sftp->login('user', 'pass')) {
exit('Login Failed');
}
主分支的API可能會發生變化。 只有1.0和2.0有固定的API。 因此我認為對composer.json的更新也是合適的。 即。 做"phpseclib/phpseclib": "~2.0"
而不是*
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.