Critical change to deltree, it seems Windows version of PHP does not consider symlinks to be links when checked with is_link().

This commit is contained in:
Diftraku 2011-03-06 03:17:40 +02:00
parent 3d66c7ce41
commit fb65286863

View File

@ -611,24 +611,39 @@ function ip_in_range($IP, $CIDR) {
* "extension manager" extension, but it seems to fit better here * "extension manager" extension, but it seems to fit better here
*/ */
function deltree($f) { function deltree($f) {
if (is_link($f)) { //Because Windows (I know, bad excuse)
//Because Windows (I know, bad excuse) if (PHP_OS === 'WINNT') {
if (PHP_OS === 'WINNT') { $real = realpath($f);
$path = realpath('./').'\\'.str_replace('/', '\\', $f);
if ($path != $real) {
rmdir($path);
}
else
{
foreach(glob($f.'/*') as $sf) {
if (is_dir($sf) && !is_link($sf)) {
deltree($sf);
} else {
unlink($sf);
}
}
rmdir($f); rmdir($f);
} }
else { }
else {
if (is_link($f)) {
unlink($f); unlink($f);
} }
} else if(is_dir($f)) {
else if(is_dir($f)) { foreach(glob($f.'/*') as $sf) {
foreach(glob($f.'/*') as $sf) { if (is_dir($sf) && !is_link($sf)) {
if (is_dir($sf) && !is_link($sf)) { deltree($sf);
deltree($sf); } else {
} else { unlink($sf);
unlink($sf); }
} }
rmdir($f);
} }
rmdir($f);
} }
} }