Foros del Web » Programando para Internet » PHP »

funcion para saber cuanto espacio me queda en un directorio

Estas en el tema de funcion para saber cuanto espacio me queda en un directorio en el foro de PHP en Foros del Web. Hola buenas. Necesito saber cuanto espacio me queda en el servidor web donde tengo alojada la página. Salseando he encontrado un código pero por lo ...
  #1 (permalink)  
Antiguo 25/11/2010, 05:52
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 15 años, 10 meses
Puntos: 1
funcion para saber cuanto espacio me queda en un directorio

Hola buenas.

Necesito saber cuanto espacio me queda en el servidor web donde tengo alojada la página.

Salseando he encontrado un código pero por lo que veo me da solo el espacio que tengo en todo el disco no en el directorio

Código PHP:
// Comprobar espacio libre en el disco
                        
$dev './';  
                        
$freespace disk_free_space($dev);  
                        
$totalspace disk_total_space($dev);  
                        
$freespace_mb $freespace/1024/1024;  
                        
$totalspace_mb $totalspace/1024/1024;  
                        
$freespace_percent = ($freespace/$totalspace)*100;  
                        
//$used_percent = (1-($freespace/$totalspace))*100;
                        // dar formato a los datos obtenidos
                    
                        
$freespace_mb=number_format($freespace_mb,0,",",".");
                        
                        
$freespace_percent=number_format($freespace_percent,2,",",".");
                        
                        echo 
"<br />";
                        echo 
"Espacio libre en disco: $freespace_mb Mb <br /><br />";
                        echo 
"Porcentaje de espacio libre: $freespace_percent %"
Este es el código que he encontrado y he añadido algo

Una de las modificaciones que he realizado es:
Código PHP:
$dev '/'
ya que dejando el codigo como me venia me da el siguiente error:

Warning: disk_free_space() [function.disk-free-space]: open_basedir restriction in effect. File(/) is not within the allowed path(s): (/home/mandaniki/:/tmp:/var/tmp:/usr/local/lib/php/) in /home/mandaniki/domains/mandaniki.com/public_html/panel/album.php on line 117

Warning: disk_total_space() [function.disk-total-space]: open_basedir restriction in effect. File(/) is not within the allowed path(s): (/home/mandaniki/:/tmp:/var/tmp:/usr/local/lib/php/) in /home/mandaniki/domains/mandaniki.com/public_html/panel/album.php on line 118

Warning: Division by zero in /home/mandaniki/domains/mandaniki.com/public_html/panel/album.php on line 121

Espacio libre en disco: 0 Mb

Porcentaje de espacio libre: 0,00 %


en cambio si pongo el codigo asi:
Código PHP:
$dev './'
si que me da resultados pero por lo que veo de todo el disco duro ya que me dice que tengo 180 Gb cuando en realidad tengo contratados 200mb

Alguien me puede decir como puedo solucionar este desaguisado:
  #2 (permalink)  
Antiguo 25/11/2010, 09:58
Avatar de jcarrascal  
Fecha de Ingreso: enero-2008
Mensajes: 87
Antigüedad: 16 años, 3 meses
Puntos: 6
Respuesta: funcion para saber cuanto espacio me queda en un directorio

Lo que pasa es que el sistema de ficheros no sabe cuánto tienes asignado (El quota se maneja por permisos) así que la función te reporta el espacio libre en el disco donde está la carpeta que le pases.

Si quieres saber cuánto te queda te toca hacer la operación contraria: Sumar lo que ocupan todos los ficheros (y ficheros en subdirectorios) y restarle esa cantidad a 200MB.

Suerte
  #3 (permalink)  
Antiguo 25/11/2010, 10:56
 
Fecha de Ingreso: octubre-2010
Mensajes: 156
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: funcion para saber cuanto espacio me queda en un directorio

Sencillo es te dejo el codigo para que lo disfrutes
Código PHP:
Ver original
  1. <?php
  2.  
  3. function FUNC_sizeDomainQuota($quota){
  4.  
  5.     function obsah($adr,&$totalquota,&$dir,&$size){
  6.  
  7.           $dp = OpenDir($adr);
  8.  
  9.               do{
  10.  
  11.                 $itm = ReadDir($dp);
  12.  
  13.     if (Is_Dir("$adr/$itm")&&($itm!=".")&&($itm!="..")&&($itm!="")){
  14.  
  15.       obsah("$adr/$itm",$totalquota,$dir,$size);
  16.  
  17.           $dir++;
  18.     }
  19.  
  20.     elseif (($itm!=".")&&($itm!="..")&&($itm!="")){
  21.  
  22.       $size = $size + FileSize("$adr/$itm");
  23.       $totalquota++;
  24.     }
  25.  
  26.   } while ($itm!=false);
  27.  
  28.   CloseDir($dp);
  29.  
  30. }
  31.  
  32.     obsah(".",$totalquota,$dir,$size);
  33.  
  34.         $freeA = $size/1024*1024;
  35.         $freeA = $freeA/1024;
  36.         $freeA = $freeA/1024;
  37.  
  38.         $exp = explode(".",$freeA);
  39.         $freeN = substr($exp[1],0,2);
  40.         $freeA = $exp[0].".".$freeN;
  41.  
  42.         $freeB = $quota-$freeA;
  43.  
  44.         $datosQuote = "Tamaño del Portal: <B>$freeA</B> Mbytes - Quota del Portal: <B>$quota</B> Mbytes<br>Espacio Libre: <B>$freeB</B> Mbytes - Ocupado por <B>$totalquota</B> ficheros y <B>$dir</B> carpeta\s";
  45.  
  46.     return $datosQuote;
  47. }
  48.  
  49.  
  50.  
  51. echo FUNC_sizeDomainQuota(5);//5 => numero de megas que tiene tu dominio
  52.  
  53. ?>

En la ultima parte debes colocar el espacio que tiene tu hosting.
  #4 (permalink)  
Antiguo 26/11/2010, 04:02
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: funcion para saber cuanto espacio me queda en un directorio

Hola gamau6 muchas gracias por el código.

Lo he puesto y me ha funcionado a la primera pero le veo un pero.

Mira que somos exigentes tanto pedir.

El calculo lo hace sobre la carpeta en la que tengo el fichero con el codigo.

En mi caso necesito que me calcule el espacio en el directorio superior ./../

Me explico si mi página esta en www.midominio.com/web/index.php lo que me haría falta es que me compruebe los datos en www.midominio.com/ he probado a crear un fichero con el codigo que me has pasado y ponerlo en el directorio raid y con un include agregarlo en la página que quiero que me muestre esa información lo malo es que me calcula y muestra la información del directorio donde tengo la página con el include.

Alguna solución? hay posibilidad de con el codigo que me has pasado que me muestre los datos de mas de un directorio, se me esta ocurriendo ahora que sería interesante me muestre el espacio ocupado por el correo webmail a parte del espacio que ocupa la web.

Muchas gracias.

FEr.
  #5 (permalink)  
Antiguo 26/11/2010, 05:15
 
Fecha de Ingreso: octubre-2010
Mensajes: 156
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: funcion para saber cuanto espacio me queda en un directorio

Bien lo que puedes hacer lo mas rapido y facil es colocar el archivo donde quieres que calcule el espacio y luego en vez de utilizar el include utilizas la etiqueta iframe de html.
__________________
..

Etiquetas: directorio, espacio, funcion, queda
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 22:05.