note 96981 added to function.rmdir

From: Date: Thu, 25 Mar 2010 19:12:54 +0000
Subject: note 96981 added to function.rmdir
Groups: php.notes 
Request: Send a blank email to php-notes+get-167418@lists.php.net to get a copy of this message
Addition to bcairns', kevin's, and anonymous' below. 1. Add a directory separator to the dir always, otherwise $dir."*" might match sibling directories. E.g. deleting /var/foo would turn into "/var/foo*" once it got to glob(), meaning /var/foobar would also be history. 2. If it's a file, delete it right off the back before sending it to glob 3. If the directory doesn't exist, return false. 4. Make sure we don't EVER delete root function delTree($dir) { if (is_file($dir)) return unlink($file); if (is_dir($dir) === false) return false; // Root ? if (dirname($dir) == $dir) die("Tried to delete root\n"); $files = glob( $dir . DIRECTORY_SEPARATOR . '*', GLOB_MARK ); foreach( $files as $file ){ if( is_dir( $file ) ) delTree( $file ); else unlink( $file ); } if (is_dir($dir)) rmdir( $dir ); } ---- Server IP: 78.110.173.36 Probable Submitter: 93.97.49.232 ---- Manual Page -- http://www.php.net/manual/en/function.rmdir.php Edit -- https://master.php.net/note/edit/96981 Del: integrated -- https://master.php.net/note/delete/96981/integrated Del: useless -- https://master.php.net/note/delete/96981/useless Del: bad code -- https://master.php.net/note/delete/96981/bad+code Del: spam -- https://master.php.net/note/delete/96981/spam Del: non-english -- https://master.php.net/note/delete/96981/non-english Del: in docs -- https://master.php.net/note/delete/96981/in+docs Del: other reasons-- https://master.php.net/note/delete/96981 Reject -- https://master.php.net/note/reject/96981 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#167418) next »