3

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

4

1 回答 1

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

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

于 2013-08-20T04:24:40.397 回答