2013-08-20 62 views
0

我试图用phpseclib删除SFTP服务器中的所有日志。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 [email protected] 
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
Does the phpseclib delete function supports wildcard character ? If not, any alternatives ? 

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

+0

伤心,它没有提到它的例子。 – Raptor

+0

我认为有这种期望是不合理的? ftp_delete是否支持通配符?请问ssh2_sftp_unlink?没有链接?无论是http://php.net/ssh2-sftp-unlink pr http://php.net/ftp-delete或http://php.net/unlink都提到.. – neubert

+0

不是。网站提到它完全实现SFTP功能,所以我认为他们对通配符有支持。 – Raptor

相关问题