ciao, allora come prima cosa fai la scansione dei file presenti nella directory, poi file per file ti calcoli la dimensione con la funzione filesize() e sommi questa dimensione al totale.
Un problema può essere la nidificazione delle cartelle perchè filesize() restituisce la grandezza di un file, ma da come risposta 0 ad una cartella, la soluzione è una funzione ricorsiva, ovvero che chiama sè stessa, che dovrebbe funzionare in questo modo:
<<inizio>> scansione della dir data
se il file è un file aggiungo al totale la sua dimensione,
se il file è una cartella <<inizio>> scansione della cartella, ritorno dimensione totale, se non ci sono più file ritorno la dimensione totale.
ti scrivo un abbozzo di codice:
Codice PHP:
<?
function dimensione($dir)
{
$handle = opendir($dir); //apro la directory
while($file = readdir($handle)) //la leggo ciclicamente fino alla fine
if ($file != "." and $file != "..") //escludo queste 2 dir
if (is_dir($file))
$tot+=dimensione($file); //richiamo la funzione de ho trovato una dir
else if (is_file($file))
$tot+=filesize($file); //aggiungo la dimensione del file corrente
closedir($handle);
return $tot;
}
?>
la funzione la invochi la prima volta con argomento il nome della dir da scandire
Codice PHP:
echo "la dimensione della cartella pippo è ".dimensione("./pippo")." bytes";
e come risultato hai la dimensione totale della cartella, sottocartelle incluse..
..nonl'ho testato, ma dovrebbe funzionare, cmq mi trovi qui!
ciao!!