empty the directory but do not delete it * * @param string $directory * @param boolean $empty * @param int $fTime If not false remove files older then this value in sec. * @return boolean */ function recursive_remove_directory($directory,$empty=false,$fTime=0) { // if the path has a slash at the end we remove it here if(substr($directory,-1) == '/') { $directory = substr($directory,0,-1); } if(!file_exists($directory) || !is_dir($directory)) { // we return false and exit the function return false; } elseif(!is_readable($directory)) { // return false and exit the function return false; } else { // we open the directory $handle = opendir($directory); // and scan through the items inside while (false !== ($item = readdir($handle))) { // if the filepointer is not the current directory // or the parent directory //if($item != '.' && $item != '..' && $item != '.svn') { if($item[0] != '.') { // we build the new path to delete $path = $directory.'/'.$item; // if the new path is a directory if(is_dir($path)) { // we call this function with the new path recursive_remove_directory($path); } else { // we remove the file if($fTime !== false && is_int($fTime)) { // check filemtime $ft = filemtime($path); $offset = time()-$fTime; if($ft <= $offset) { unlink($path); } } else { unlink($path); } } } } // close the directory closedir($handle); // if the option to empty is not set to true if($empty == false) { // try to delete the now empty directory if(!rmdir($directory)) { // return false if not possible return false; } } return true; } } ?>