note 99838 modified in function.rmdir by danbrown
| From: | danbrown@php.net | Date: | Thu, 09 Sep 2010 17:00:17 +0000 |
| Subject: | note 99838 modified in function.rmdir by danbrown | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-172431@lists.php.net to get a copy of this message | ||
Hello to all!
I don't remember were i found ( googling ) this useful function, if you know please let me know
[by email] so i can write here the name of the developer :)
This function is useful to delete all folder sub content, keeping the main directory
I have done some modifications, exactly i included a "preserve" variable, to keep some
content you don't want to delete.
<?php
function full_emptydir($fields){
if( !isset($fields['dirname']) or( isset($fields['dirname']) and !$dh =
@opendir($fields['dirname']) )) return;
$dirname = $fields['dirname'];
$DeleteMe = isset($fields['DeleteMe']) ? $fields['DeleteMe'] : false;
$preserve = isset($fields['preserve']) ? ( is_array($fields['preserve']) ?
$fields['preserve'] : array() ) : array();
while (false !== ($obj = readdir($dh))) {
if($obj=='.' || $obj=='..') continue;
if( count($preserve) == 0 or (count($preserve) > 0 and !in_array($obj, $preserve) ) ){
if (!@unlink($dirname.'/'.$obj)) full_emptydir( array( 'dirname' =>
$dirname.'/'.$obj, 'DeleteMe' => true, 'preserve' => $preserve)
);
}
}
closedir($dh);
echo $DeleteMe.'<br />';
if ($DeleteMe){
@rmdir($dirname);
}
}
?>
I hope it will be useful!
See you ;)
--was--
Hello to all!
I don't remember were i found ( googling ) this useful function, if you know please let me know
so i can write here the name of the developer :)
This function is useful to delete all folder sub content, keeping the main directory
I have done some modifications, exactly i included a "preserve" variable, to keep some
content you don't want to delete.
function full_emptydir($fields){
if( !isset($fields['dirname']) or( isset($fields['dirname']) and !$dh =
@opendir($fields['dirname']) )) return;
$dirname = $fields['dirname'];
$DeleteMe = isset($fields['DeleteMe']) ? $fields['DeleteMe'] : false;
$preserve = isset($fields['preserve']) ? ( is_array($fields['preserve']) ?
$fields['preserve'] : array() ) : array();
while (false !== ($obj = readdir($dh))) {
if($obj=='.' || $obj=='..') continue;
if( count($preserve) == 0 or (count($preserve) > 0 and !in_array($obj, $preserve) ) ){
if (!@unlink($dirname.'/'.$obj)) full_emptydir( array( 'dirname' =>
$dirname.'/'.$obj, 'DeleteMe' => true, 'preserve' => $preserve)
);
}
}
closedir($dh);
echo $DeleteMe.'<br />';
if ($DeleteMe){
@rmdir($dirname);
}
}
I hope it will be useful!
See you ;)
http://php.net/manual/en/function.rmdir.php