Php SFTP删除带有通配符的文件

Php SFTP删除带有通配符的文件,php,phpseclib,Php,Phpseclib,我尝试使用删除SFTP服务器中的所有日志 代码很简单: $sftp = new Net_SFTP($host_name); $sftp->login($username, $password); // login is successful $sftp->chdir('/somefolder'); if(!$sftp->delete('*.log')) { $logger->error('Cannot remove logs'); } 日志显示“无法删除日志” 但是

我尝试使用删除SFTP服务器中的所有日志

代码很简单:

$sftp = new Net_SFTP($host_name);
$sftp->login($username, $password); // login is successful
$sftp->chdir('/somefolder');
if(!$sftp->delete('*.log')) {
  $logger->error('Cannot remove logs');
}
日志显示“无法删除日志”

但是,我在shell中使用SFTP命令,它可以工作:

$ sftp myusername@example.com
Password: (type in my password)
sftp> cd /somefolder
sftp> rm *.log
Removing xxx.log
Removing yyy.log
sftp> ls
( no more *.log )
sftp> exit
phpseclib delete函数是否支持通配符?若否,有何选择?

Does the phpseclib delete function supports wildcard character ? If not, any alternatives ?

目前没有。我想您可以执行
$sftp->nlist()
并对nlist返回的每一行进行预匹配。如果它匹配,请删除它,否则保留它。

遗憾的是,它没有在示例中提及。我认为有这样的期望是不合理的?ftp_delete是否支持通配符?ssh2_sftp_是否取消链接?是否取消链接?既不做公关也不提那件事……不。该网站提到它完全实现了SFTP功能,所以我假设他们支持通配符。它说它在哪里完全实现了SFTP的功能?我没这么说。在任何情况下,通配符都可以说不是SFTP协议的一个特性,而是SFTP程序的一个特性。也许你可以在github.com上创建一张罚单,建议将其作为一项功能,但我仍然认为你的期望是不合理和没有根据的。