SFTP使用通配符删除文件

时间:2013-08-20 03:37:19

标签: php phpseclib

我尝试使用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');
}

日志显示“无法删除日志”。

但是,我在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删除功能是否支持通配符?如果没有,还有其他选择吗?

1 个答案:

答案 0 :(得分:2)

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

目前不是没有。我想你可以做$sftp->nlist()并在nlist返回的每一行上做一个preg_match。如果匹配则删除它,否则保留它。