Come posso fare uno script che mi indichi il mio spazio web rimanente?
Printable View
Come posso fare uno script che mi indichi il mio spazio web rimanente?
Se n'era già parlato, è troppo dispendioso in termini di risorse.
Dovresti fare un filesize() per ogni file del tuo sito e sommare le dimensioni, in quanto disk_free_space, ritorna lo spazio rimanente dell'intera partizione e non solo del tuo spazio
io uso questo:
devi metterlo in una sottocartella oppure cambiare la variabile $dir con un solo punto (.)Codice PHP:
<html>
<head>
<style type="text/css">
body { background-color:#000000; color:#FFFFFF; }
table { font-family:"Courier New", Verdana; font-size:11px }
td { border:1px dashed #FF0000; }
a { background-color:#000000; color:#FFFFFF; text-decoration:underline overline; }
</style>
<title>Filesize</title>
<script type="text/javascript" languge="Javascript">
var popupOn = false
function popup ()
{
if (popupOn)
document.getElementById ("popup").style.display = "none"
else
document.getElementById ("popup").style.display = "block"
popupOn = !popupOn
}
</script>
</head>
<body>
<?
echo "<table align=\"center\">\n";
$totale = 0;
$dir = '..';
$max = 100;
$nome = 'root';
$return = '';
$f = 0;
$d = -1;
function scan_dir($dir)
{
global $totale, $return, $f, $d;
if( $handle = opendir($dir) )
{
while( $file = readdir($handle) )
{
if( $file != '.' && $file != '..' )
{
if( is_file($dir . '/' . $file) )
{
$size = filesize($dir . '/' . $file);
$totale += $size;
$total = number_format($size, 0, '.', ' ');
$return .= "<tr><td>{$dir}/{$file} </td><td><b>{$total}</b></td></tr>\n";
$f++;
}
elseif( is_dir($dir . '/' . $file) )
{
scan_dir($dir . '/' . $file);
}
}
}
}
$d++;
closedir($handle);
return $return;
}
function barra($x)
{
$w = 102;
$h = 12;
$percent = $x / 100 * $w;
$img = imagecreate($w, $h);
$border = imagecolorallocate($img, 0, 0, 0);
$back = imagecolorallocate($img, 0, 0, 255);
$fill = imagecolorallocate($img, 0, 174, 255);
imagefilledrectangle($img, 0, 0, $w - 1, $h - 1, $back);
imagefilledrectangle($img, 1, 1, $percent, $h - 1, $fill);
imagerectangle($img, 0, 0, $w - 1, $h - 1, $border);
imagepng($img, 'temp_img.png');
imagedestroy($img);
}
$file = scan_dir($dir);
$total = number_format( ($totale / (1024 * 1024)), 2, '.', ' ');
$dim = $max - $total;
$size = $total;
$end = 100 - ($dim / $max * 100);
$cout = ($dim / $max * 100);
barra($end);
echo "<tr><td>Nome Catrella </td><td><b>{$nome}</b></td></tr>
<tr><td>Massimo Spazio </td><td><b>{$max} mb</b></td></tr>
<tr><td>Spazio Utilizzato </td><td><b>{$size} mb</b></td></tr>
<tr><td>Spazio Libero </td><td><b>{$dim} mb</b></td></tr>
<tr><td>Percentuale Spazio Utilizzato </td><td><b>{$end} %</b></td></tr>
<tr><td>Percentuale Spazio Libero </td><td><b>{$cout} %</b></td></tr>
<tr><td>File </td><td><b>{$f}</b></td></tr>
<tr><td>Cartelle </td><td><b>{$d}</b></td></tr>
<tr><td colspan=\"2\"><img src=\"temp_img.png\" alt=\"\"></td></tr>
<tr><td colspan=\"2\"><a href=\"#\" onclick=\"popup()\">Nascondi file</a></td></tr>
<tr><td colspan=\"2\" align=\"center\">--------------------------------------------------- LISTA FILES ---------------------------------------------------</td></tr>\n
<tr>
<td colspan=\"2\">
<div id=\"popup\" style=\"display:none\">
<table width=\"100%\">
{$file}
</table>
</div>
</td>
</tr>";
echo "</table>";
?>
</body>
</html>
ciao ^__^
una cosa sola non va la parte del mostar file
scusa Jostock, solo per curiosità, il tempo di processo quant'è ?
ho modificato il codice ora funziona.
io quel codice lo uso in locale e quindi ci mette poco tempo considerando che prima avevo uno spazio ke occupava quasi 100mb
ciao ^__^
so che è passato un po' di tempo (più di 15 anni) ma ho rispolverato lo script e l'ho messo nella mia root (quindi http://mionick.altervista.org/) ed infatti mi lista correttamente l'elenco ma non lo spazio utilizzato benché abbia imposta $dir a "." e non ".." mi da spazio utilizzato "0.033068783068785 %" dove sto sbagliando?
Salve,
ha modificato il valore di $max?
E' impostato a 100 MB invece di 3072 MB (ovvero 3.0 GB).
Io l'ho provato e a me funziona correttamente.
Comunque invece di riprendere una discussione molto vecchia, sarebbe meglio aprirne una nuova e lincare la discussione di riferimento. Orami quasta è andata, quindi non ne apra un altra.
Cordiali saluti.
Possiamo darci del tu (sono qui dal 2005 almeno)?
Quindi posso rispondere qui o devo aprire un altro thread?
Solo per dire che si ho impostato $max, $dir va bene a "."?
Si va bene, se lo preferisci, nessun problema.
Io comunque non è che vario forma di dialogo in base alla data di registrazione delgli utenti. Per coerenza e correttezza, mi rivolgo qui nel forum a tutti allo stesso modo, fatta eccezione quando richiesto diversamente dagli utenti, come nel tuo caso e per coloro che sono lincati come amici.
Beh, l'haveo menzioanto anche in precedenza, quindi riconfermo, continua pure qui.
A me funziona correttamente messo in una cartella con $dir ".." (che fa riferimento alla root).
Cordiali saluti.
Potrà essere espandibile a 3000MB su richiesta tramite pannello di controllo per vecchio account mentre sui nuovi 3072MB
intanto grazie per il supporto.
Ho copiato il codice paro paro mettendolo su index.php in http://mionick.altervista.org/spazio/, l'unico cosa cambiata è il valore di $max messo a 3072, ma ottengo:
Percentuale Spazio Utilizzato 0.032552083333343 %
Percentuale Spazio Libero 99.967447916667 %
File 10394
Cartelle 1091
non a caso il valore di File e Cartelle è reale, infatti cliccando su Nascondi file la lista è corretta.
Del resto se modifico $dir a "." mi da informazioni corrette sullo spazio utilizzato nella singola cartella spazio
Dal pannello di controllo (da qui), andando a fine pagina, cosa le risulta come vale massimo in MB?
Cordiali saluti.
risulta 3024, modificando $max con il suddetto valore ottengo:
Massimo Spazio 3024 mb
Spazio Utilizzato 1 100.07 mb
Spazio Libero 3023 mb
Percentuale Spazio Utilizzato 0.033068783068785 %
Percentuale Spazio Libero 99.966931216931 %
le prime 2 (come l'elenco dei files) mi sembrano corrette non le ultime 3
A lei indica che su un totale di 3024 MB, ci sono liberi 3023, quindi lo spazio usato sarebbe 1 MB.
La percentuale di 3023 MB su 3024 MB è 99.966931216931% mentre la percentuale di 1 MB su 3024 MB è 0.033068783068785 %
Quindi i conti tornanerebbero per:
Percentuale Spazio Utilizzato 0.033068783068785 %
Percentuale Spazio Libero 99.966931216931 %
Quello che invece non tornerebbe è: Spazio Utilizzato 1 100.07 mb
Ovviamnete non penso che lo sapzio occupato sai solo 1 MB.
Sepmre che poi 100.07 MB come sapzio utilizzato, corrisponda al valore reale, è probabile che ci sia almeno una variabile con valore impostato in modo errato.
Cordiali saluti.