note 91974 deleted from function.rmdir by danbrown
| From: | danbrown@php.net | Date: | Fri, 03 Jul 2009 13:10:07 +0000 |
| Subject: | note 91974 deleted from function.rmdir by danbrown | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-157877@lists.php.net to get a copy of this message | ||
Note Submitter: erkethan at free dot fr
----
A security patch on previous deleteDirectory function, to prevent the function to follow links and
erase unexpected files :
<?php
function deleteDirectory($dir) {
if (!file_exists($dir)) return true;
if (!is_dir($dir) || is_link($dir)) return unlink($dir);
foreach (scandir($dir) as $item) {
if ($item == '.' || $item == '..') continue;
if (!deleteDirectory($dir.DIRECTORY_SEPARATOR.$item)) return false;
}
return rmdir($dir);
}
?>