Попытка добавить возможность удаления папки с использованием FTP и всех подпапок и файлов, содержащихся в этой папке.
Я построил для этого рекурсивную функцию и чувствую, что логика верна, но все еще не работает.
Я провел некоторое тестирование, я могу удалить при первом запуске, если путь является просто пустой папкой или просто файлом, но не могу удалить, если это папка, содержащая один файл, или папка, содержащая одну пустую подпапку. Так что, похоже, проблема с обходом папок и использованием функции удаления.
Есть идеи?
function ftpDelete($directory)
{
if(empty($directory))//Validate that a directory was sent, otherwise will delete ALL files/folders
return json_encode(false);
else{
global $conn_id;
# here we attempt to delete the file/directory
if( !(@ftp_rmdir($conn_id,$directory) || @ftp_delete($conn_id,$directory)) )
{
# if the attempt to delete fails, get the file listing
$filelist = @ftp_nlist($conn_id, $directory);
# loop through the file list and recursively delete the FILE in the list
foreach($filelist as $file)
ftpDelete($file);
#if the file list is empty, delete the DIRECTORY we passed
ftpDelete($directory);
}
else
return json_encode(true);
}
};