我使用composer下载了phpseclib,它创建了路径/var/www/html/dom/vendor/phpseclib/phpseclib/phpseclib/phpseclib
现在我不确定我在哪里包含我的test.php文件来运行它。连续得到错误"致命错误:类'phpseclibNetSSH2'未在/var/www/html/dom/vendor/phpseclib/phpseclib/phpseclib/Net/sftp .php第50行"
我的test.php代码是<?php
set_include_path(get_include_path() . PATH_SEPARATOR . '/phpseclib');
include('Net/SFTP.php');
$sftp = new Net_SFTP('domain');
if (!$sftp->login('user', 'pass')) {
exit('Login Failed');
}
// outputs the contents of filename.remote to the screen
echo $sftp->get('filename.remote');
// copies filename.remote to filename.local from the SFTP server
//$sftp->get('filename.remote', 'filename.local');
?>
Composer生成一个自动加载器。您不必关心手动包含的内容。只做:
include '/var/www/html/dom/vendor/autoload.php';
除了include/require的命名空间也不同。这就是我的解决方案:
require_once __DIR__ . '/vendor/autoload.php';
$handler = new phpseclibNetSFTP('ftp_host');
if (!$handler->login('ftp_user', 'ftp_password')) {
exit('FTP login failed');
}
print_r($handler->nlist());