Удалить папку с содержимым
Иногда бывает нужно быстро удалить папку со всеми входящими в ней папками и файлами. Чтобы удалить папку со всем содержимым, используйте следующий простой PHP скрипт:
<?
/**
* удалить директорию со всеми вложенными файлами
* @param $dir
* @return bool
*/
function delDir($dir) {
$files = array_diff(scandir($dir), ['.','..']);
foreach ($files as $file) {
(is_dir($dir.'/'.$file)) ? delDir($dir.'/'.$file) : unlink($dir.'/'.$file);
}
return rmdir($dir);
}
?>
Скрипт оформлен в виде функции. Если вы хотите использовать скрипт удаления содержимого папки в составе класса, то запишите так:
/**
* удалить директорию со всеми вложенными файлами
* @param $dir
* @return bool
*/
static function delDir($dir) {
$files = array_diff(scandir($dir), ['.','..']);
foreach ($files as $file) {
(is_dir($dir.'/'.$file)) ? self::delDir($dir.'/'.$file) : unlink($dir.'/'.$file);
}
return rmdir($dir);
}
Если Вы заранее не знаете, какие права у файла и можно ли его удалить, то перед удалением добавьте команду установки прав:
chmod( $dir.'/'.$file, 0777 );
Также можно удалить папку со всеми файлами с помощью системного вызова:
exec("rm -rf /path/to/directory/*");
.
Прокомментировать/Отблагодарить