calcul de l'espace occupe par mon site

Le
CharlyG
salut tout le monde !
j'ai mis en place un script trouvé sur le net pour calculer l'espace utilisé
par mon site.
je m'en sers pour informer les personnes qui uploadent sur mon site.

1. voici le script :

*******************************************************************

<?
$quota="500"; //le quota de votre espace disque sur votre serveur, exprimé
en Mo

# on demande la taille a la racine
$size=dirsize(".", 0);


function dirsize($maindir, $level)
{
# securité pour eviter les boucles trop longues
if($level>5)
return 0;

print "<ul>";

$mydir = @opendir($maindir) ;
while($fn = @readdir($mydir))
{
if(!in_array($fn, Array("..", ".")))
{
if(is_dir("$maindir/$fn"))
{
print "<li>$maindir/$fn : <br />";
$size+=dirsize("$maindir/$fn", ($level + 1));
print "</li>";
}
else
{
$size+=@filesize("$maindir/$fn");
}
}
}
@closedir($mydir);

# on calcule la taille en Mo
$sizem = (int) (($size/1024)/1024);

print "<li><b>Total : $sizem Mo</b> ($size octets)</li>";
print "</ul>";
return $size;
}


$freeB=$quota-$sizem; // calcul de l'espace restant

echo "<b><u>ETAT DU COMPTE</b></u><br>";
echo "Espace total: <B>$quota</b> Mo <br>"; // Affichage de l'espace Total
indiqué plus haut
echo "Espace utilisé : <B>$sizem</b> Mo <br>"; // Affichage de l'espace
utilisé
echo "Espace libre: <B>$freeB</b> Mo<br>"; // Affichage de l'espace restant

?>

************************************************

le problème c'est que je n'arrive pas à utiliser la variable $sizem dans le
calcul de l'espace restant => $freeB=$quota-$sizem;
Je n'arrive pas non plus l'afficher dans => echo "Espace utilisé :
<B>$sizem</b> Mo <br>";
On m'a dit qu'il fallait que je sorte la variable de la fonction. Ok, mais
comment on fait ?

pour ceux qui veulent voir le résultat, voici la page qui utilise ce script
:
http://jaketstream.membres.jexiste.org/espace.php

merci de m'aider.
@++

CharlyG
www.jaketstream.fr.fm
jaketstream@fr.fm
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jean-Luc
Le #128744
Bonjour CharlyG.

Attention à la portée des variables ! Ton opération $freeB=$quota-$sizem
n'aboutit à rien car $sizem est locale, c'est-à-dire qu'elle n'est pas
définie en dehors de la fonction dirsize().

Par ailleurs, à mon avis, c'est une mauvaise idée de convertir en entier la
taille en Mo : je ne pense pas que ton hébergeur accepte l'équation 999999
octets = 0 Mo pour calculer l'espace disque utilisé...

Sans avoir vérifié l'exactitude des calculs effectués par ton script, tu
devrais déjà obtenir le résultat attendu en le corrigeant de la façon
suivante :

<?php
function dirsize($maindir, $level) {
if($level > 5) return 0;
echo "<ul>n";
$mydir = @opendir($maindir) ;
while($fn = @readdir($mydir)) {
if(!in_array($fn, Array("..", "."))) {
if(is_dir("$maindir/$fn")) {
echo "<li>$maindir/$fn : <br />n";
$size += dirsize("$maindir/$fn", ($level + 1));
echo "</li>n";
} else {
$size += @filesize("$maindir/$fn");
}
}
}
@closedir($mydir);
$sizem = number_format(($size / 1048576),2,","," ");
echo "<li><b>Total : </b>$sizem Mo ($size octets)</li>n";
echo "</ul>n";
return $size;
}

$quotaMo = 500; // Espace disque alloué (en Mo)

$size = dirsize(".", 0);
$quota = $quotaMo * 1048576;
$free = $quota - $size;
$sizeMo = number_format(($size / 1048576),2,","," ");
$freeMo = number_format(($free / 1048576),2,","," ");

echo "<b><u>ETAT DU COMPTE</b></u><br>";
echo "Espace total: <B>$quotaMo</b> Mo <br>";
echo "Espace utilisé : <B>$sizeMo</b> Mo <br>";
echo "Espace libre: <B>$freeMo</b> Mo<br>";
?>

Jean-Luc
--
http://www.visite-virtuelle.com
http://www.visite-virtuelle.com/marseille/
P'tit Marcel
Le #128748
CharlyG écrivit:

$quota="500"; //le quota de votre espace disque sur votre serveur,
exprimé en Mo

# on demande la taille a la racine
$size=dirsize(".", 0);

function dirsize($maindir, $level)
...

return $size;
}

$freeB=$quota-$sizem; // calcul de l'espace restant



$sizem n'existe pas.
error_reprting(E_ALL) est ton amie



--
P'tit Marcel
statistiques sur les forums modérés : http://www.centrale-lyon.org/ng/

CharlyG
Le #128613
ok !! merci beaucoup, ça fonctionne impec.
Publicité
Poster une réponse
Anonyme