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
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
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/
$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/