PHP + FTP удаляет файлы в папке - PullRequest
5 голосов
/ 01 ноября 2010

Я только что написал PHP Script, который должен подключаться к FTP и удалять все файлы в специальной папке.

Похоже, но я понятия не имею, какая команда мне нужна, чтобы удалить все файлы в журналах папок.

Есть идеи?

<?php

// set up the settings
$ftp_server = 'something.net';
$ftpuser = 'username';
$ftppass = 'pass';

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftpuser, $ftppass);

// delete all files in the folder logs
????????

// close the connection
ftp_close($conn_id);

?>

Ответы [ 3 ]

14 голосов
/ 01 ноября 2010
// Delete all files in the folder logs
$logs_dir = "";
ftp_chdir($conn_id, $logs_dir);
$files = ftp_nlist($conn_id, ".");
foreach ($files as $file)
{
    ftp_delete($conn_id, $file);
}    

Возможно, вы захотите проверить каталоги, но на базовом уровне, вот и все.

4 голосов
/ 01 ноября 2010

Руководство по PHP по функциям FTP содержит ответы.

примечания, предоставленные пользователем, дают полных примеров для функции «удалить папку». (Обращайтесь с осторожностью.)

1 голос
/ 11 апреля 2013
<?php

# server credentials
$host = "ftp server";
$user = "username";
$pass = "password";

# connect to ftp server
$handle = @ftp_connect($host) or die("Could not connect to {$host}");

# login using credentials
@ftp_login($handle, $user, $pass) or die("Could not login to {$host}");

function recursiveDelete($directory)
{
# here we attempt to delete the file/directory
if( !(@ftp_rmdir($handle, $directory) || @ftp_delete($handle, $directory)) )
{
# if the attempt to delete fails, get the file listing
$filelist = @ftp_nlist($handle, $directory);

# loop through the file list and recursively delete the FILE in the list
foreach($filelist as $file)
{
recursiveDelete($file);
}

#if the file list is empty, delete the DIRECTORY we passed
recursiveDelete($directory);
}
}
?>
...