Uy, le di solución! despues de estar googleando. Bueno tengo que aprender más PHP porque aun estoy muy novato.
Lo que hice fue no declarar en la función la variable
$_eltamano. Le hice otros cambios menores pero solo por estetica. y ponerla
global $_eltamano. Que no sabia que se podia hacer.
Adicional agregue de una vez para que me muestre el tamaño en KB o MB, no en GB porque yo necesitaba era mostrarle en MB al cliente.
Código PHP:
<?
echo $ruta= $_SERVER['DOCUMENT_ROOT'];
echo '<br>';
echo $_eltamano=0;
echo '<hr>';
function listar_directorios_ruta($ruta){ // abre funcion
global $_eltamano;
if ($dh = opendir($ruta)) { // abre opendir
while (($file = readdir($dh)) !== false) { // abrewile
$laruta=$ruta.'/'.$file;
echo '<h3>Archivo a Analizar '.$laruta.' - Tamano contado hasta aqui: '.$_eltamano.'</h3>';
if($file != '.' && $file!= '..' && !is_link($laruta)){ // pregunta si es archivo o directorio
if (is_dir($laruta)){ // es directorio
echo "<br>Directorio: $file";
echo ' <font color="#00CC33">total contado hasta aqui: '. $_eltamano.'</font><br>';
listar_directorios_ruta($laruta."/");} // cierra si es directorio
else if(is_file($laruta))
{ // pregunta si es archivo
echo '<br><b>'.$file.' es archivo</b> ';
$tamano=filesize($laruta);
$_eltamano+=$tamano;
echo '<font color="#3399FF">Tamano del archivo: '.$tamano.'</font> ';
echo '<font color="#FF0000">Total contado hasta aqui: '.$_eltamano.'</font>';
} // cierra si es archivo
else{ echo '<br>'.$file.' no es archivo';} // abre cierra si no es nada
} // cierra si es directorio o archivo
} // cierra while
} // cierra opendir
closedir($dh);
echo '<br><b><font color="#055e74">vamos a retonar este tamano total: '.$_eltamano.'</font></b><hr>';
return $_eltamano;
} // cierra funcion
echo '<h1>Dato Final de espacio en Bytes: '.$_final=listar_directorios_ruta($ruta).'</h1>';
echo '<br>';
function sizeFormat($_dirSize)
{
if($_dirSize < 1024)
{
return $_dirSize." Bytes.";
}
else if($_dirSize < (1024*1024))
{
$_dirSize = round($_dirSize/1024,1);
return $_dirSize." KB.";
}
else
{
$_dirSize = round($_dirSize/(1024*1024),1);
return $_dirSize + 0.1." MB.";
}
}
echo sizeFormat($_final);
?>
Un saludo