No hay una función incorporada para hacer esto, pero vea los comentarios en la parte inferior de http://us3.php.net/rmdir. Varios comentaristas publicaron sus propias funciones recursivas de eliminación de directorios. Usted puede elegir entre ellos.
Aquí es one that looks decent:
function deleteDirectory($dir) {
if (!file_exists($dir)) {
return true;
}
if (!is_dir($dir)) {
return unlink($dir);
}
foreach (scandir($dir) as $item) {
if ($item == '.' || $item == '..') {
continue;
}
if (!deleteDirectory($dir . DIRECTORY_SEPARATOR . $item)) {
return false;
}
}
return rmdir($dir);
}
Editar: Sólo podría invocar rm -rf
si quiere mantener las cosas simples. Eso hace que tu script solo sea UNIX, así que ten cuidado con eso. Si vas por esa ruta, intentaré algo como:
function deleteDirectory($dir) {
system('rm -rf ' . escapeshellarg($dir), $retval);
return $retval == 0; // UNIX commands return zero on success
}
duplicados posibles de [¿Cómo recursiva eliminar un directorio y todo su contenido (archivos + subdirectorios) en PHP?] (http://stackoverflow.com/questions/3338123/how-do-i-recursively-delete-a-directory-and-its-entire-contents-files-sub-dir) – MaxiWheat