note 70769 added to function.rmdir

From: Date: Fri, 27 Oct 2006 05:30:54 +0000
Subject: note 70769 added to function.rmdir
Groups: php.notes 
Request: Send a blank email to php-notes+get-119159@lists.php.net to get a copy of this message
Others' comments provide several versions of a recursive delete; most of them are absolutely horrid. Here's the foolproof version. <? /* rmdir_recurse(root, [ rm_toplevel ]); root - directory whose *entire* contents you wish to delete rm_toplevel - true: delete contents, incl. root directory [default] false: delete contents, excl. root directory Returns boolean true if *entire* op is successfull, false otherwise */ function rmdir_recurse ($root, $rm_toplevel = true, $level = 0) { if (! $level) clearstatcache(); if (! is_dir($root) || ($dh = @opendir($root)) === false ) return false; while ( ($file = @readdir($dh)) !== false ) { if (is_dir("${root}/${file}") && $file != '.' && $file != '..' && ! rmdir_recurse("${root}/${file}", true, $level + 1) ) return false; else if (is_file("${root}/${file}") && ! unlink("${root}/${file}")) return false; } @closedir($root); if ( ($level || (! $level && $rm_toplevel)) && ! @rmdir($root) ) return false; return true; } ?> ---- Server IP: 216.235.15.211 Probable Submitter: 68.148.104.116 ---- Manual Page -- http://www.php.net/manual/en/function.rmdir.php Edit -- https://master.php.net/note/edit/70769 Del: integrated -- https://master.php.net/note/delete/70769/integrated Del: useless -- https://master.php.net/note/delete/70769/useless Del: bad code -- https://master.php.net/note/delete/70769/bad+code Del: spam -- https://master.php.net/note/delete/70769/spam Del: non-english -- https://master.php.net/note/delete/70769/non-english Del: in docs -- https://master.php.net/note/delete/70769/in+docs Del: other reasons-- https://master.php.net/note/delete/70769 Reject -- https://master.php.net/note/reject/70769 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#119159) next »