Рецепт №79. Из книги «128 рецептов php»
Перейти к оглавлению
Удаление папки осуществляется с помощью функции rmdir. Для успешного выполнения этой функции необходимо, чтобы папка была пуста. Таким образом, получается, что для удаления папки сначала необходимо ее очистить.
Пример удаления пустой папки, тут все просто:
// удалить папку $folder = '/new_folder'; // путь до папки rmdir($path . $folder); // удаление папки Для удаления папки, содержащей файлы, необходимо немного больше кода. Как уже выше говорилось, сначала необходимо удалить все файлы и все подпапки, которые содержаться внутри удаляемой папки. Для того, чтобы очистить папки можно написать небольшую рекурсивную функцию. Которая будет перебирать все вложенные файлы и удалять. Если же функция встретит не файл, а папку, то должна будет зайти вовнутрь и уже там удалить все файлы, после чего удалить эту подпапку. Пример: // удаление папки со всеми // вложенными файлами и подпапками $folder = '/new_folder'; // имя новой папки remove_folder($folder); // удаление // рекурсивная функция function remove_folder($folder) { // получаем все файлы из папки if ($files = glob($folder . "/*")) { // удаляем по одному foreach($files as $file) { if(is_dir($file)){ // если попалась папка, // то удаляем ее remove_folder($file); }else{ // если попался файл unlink($file); } } } // удаляем пустую папку rmdir($folder); }