2013-08-20 5 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'); 
} 

В журнале "Невозможно удалить журналы".

Однако, я использую команду 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() и сделать preg_match в каждой строке, возвращаемой nlist. Если он соответствует удалению, в противном случае сохраните его.

+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

Смежные вопросы