note 99838 modified in function.rmdir by danbrown

From: 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

« previous php.notes (#172431) next »