49 lines
1.3 KiB
PHP
49 lines
1.3 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @class GHelper
|
||
|
|
* @brief Clase con funciones generales de ayuda.
|
||
|
|
*
|
||
|
|
* @package application.helpers
|
||
|
|
*/
|
||
|
|
class GHelper {
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief Borrado recursivo de un directorio y su contenido
|
||
|
|
*
|
||
|
|
* @param string directorio
|
||
|
|
* @param boolean Si es TRUE vacía el directorio pero no elimina
|
||
|
|
* @return boolean
|
||
|
|
*/
|
||
|
|
public static function recursiveRemoveDirectory($directory, $empty = FALSE) {
|
||
|
|
if (substr($directory, -1) == '/') {
|
||
|
|
$directory = substr($directory, 0, -1);
|
||
|
|
}
|
||
|
|
if (!file_exists($directory) || !is_dir($directory)) {
|
||
|
|
return FALSE;
|
||
|
|
} elseif (is_readable($directory)) {
|
||
|
|
$handle = opendir($directory);
|
||
|
|
while (FALSE !== ($item = readdir($handle))) {
|
||
|
|
if ($item != '.' && $item != '..') {
|
||
|
|
$path = $directory . '/' . $item;
|
||
|
|
if (is_dir($path)) {
|
||
|
|
recursive_remove_directory($path);
|
||
|
|
} else {
|
||
|
|
unlink($path);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
closedir($handle);
|
||
|
|
if ($empty == FALSE) {
|
||
|
|
if (!rmdir($directory)) {
|
||
|
|
return FALSE;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return TRUE;
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
?>
|