Короткая функция, которая выполняет работу:
function deleteDir($path) {
return is_file($path) ?
@unlink($path) :
array_map(__FUNCTION__, glob($path.'/*')) == @rmdir($path);
}
Я использую ее в классе Utils следующим образом:
class Utils {
public static function deleteDir($path) {
$class_func = array(__CLASS__, __FUNCTION__);
return is_file($path) ?
@unlink($path) :
array_map($class_func, glob($path.'/*')) == @rmdir($path);
}
}
С большой силой приходит большая ответственность: Когда вы вызываете эту функцию с пустым значением, она удалит файлы, начинающиеся с root (/
).В качестве гарантии вы можете проверить, если путь пуст:
function deleteDir($path) {
if (empty($path)) {
return false;
}
return is_file($path) ?
@unlink($path) :
array_map(__FUNCTION__, glob($path.'/*')) == @rmdir($path);
}