Hola, e estado revisando tu codigo y por algun motivo no hace bien la recursividad...
prueba esto a ver si te funciona, es el que yo uso y a mi me va bien
salu2
Código :
function dirsize($dirname) {
if (!is_dir($dirname) || !is_readable($dirname)) {
return false;
}
$dirname_stack[] = $dirname;
$size = 0;
do {
$dirname = array_shift($dirname_stack);
$handle = opendir($dirname);
while (false !== ($file = readdir($handle))) {
if ($file != '.' && $file != '..' && is_readable($dirname . DIRECTORY_SEPARATOR . $file))
{
if (is_dir($dirname . DIRECTORY_SEPARATOR . $file)) {
$dirname_stack[] = $dirname . DIRECTORY_SEPARATOR . $file;
}
$size += filesize($dirname . DIRECTORY_SEPARATOR . $file);
}
}
closedir($handle);
} while (count($dirname_stack) > 0);
return $size;
}
echo "Espacio Disponible: " . number_format((dirsize($_SERVER['DOCUMENT_ROOT'])/1024),0,".",",") . "<br />";