Salut
t'as essayé diskfreespace() et disk_total_space(), c assez pratique (mais refusé chez beaucoup d'hebergeur
Pour le reste aucune idée g pas super envi de mon plonger dans le code aujourd'hui lol
++
------
Je cherche un poste de developpeur PHP mysql, si vous avez une proposition ou si vous voulez mon CV ==> mailto:tortue.geniale@laposte.net
=> http://www.kame-house.org La plus grosse base de données de DA du net
-------------------------------
Réponse au message :
-------------------------------
> salut
> voilà, j'ai deux questions :
>
>
1. j'ai mis en place un script qui permet de scruter l'ensemble des dossiers et de donner leur taille, puis à la fin de donner la taille totale utilisée par les dossiers.
> vous pouvez voir le résultat à cette adresse :
> http://jaketstream.membres.jexiste.org/espace.php
>
> le calcul se fait en octets et est appelé par $size
> ensuite le résultat est donné en Mo par ce calcul :
>
>
| $sizem = (int) (($size/1024)/1024); |
>
> donc pour l'affichage de l'espace occupé en Mo, j'appelle $sizem par cette ligne :
>
>
| print "<li><b>Total : $sizem Mo</b> ($size octets)</li>\n"; |
>
> jusque là pas de problème. tout fonctionne.
> mais ensuite j'ai mis en place un calcul pour donner l'espace restant (une simple soustraction) :
>
>
>
> mais là, le calcul ne se fait pas bien que j'ai renseigné la variable $quota.
>
> pour plus de simplicité je vous donne 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>\n"; > > $mydir = @opendir($maindir) ; > while($fn = @readdir($mydir)) > { > if(!in_array($fn, Array("..", "."))) > { > if(is_dir("$maindir/$fn")) > { > print "<li>$maindir/$fn : <br />\n"; > $size+=dirsize("$maindir/$fn", ($level + 1)); > print "</li>\n"; > } > 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>\n"; > print "</ul>\n"; > 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 > > ?> > |
>
> alors ma question est : pourquoi $sizem s'affiche après l'arborescence mais ne fonctionne pas dans le calcul ??
>
>
2.voilà ma deuxième question : mon hébergeur (jexiste.org) affiche un espace utilisé beaucoup plus grand que celui trouvé par l'intermédiaire de ce script. Je me suis dit qu'ils incluaient la base de donnée, mais celle ci fait dans les 600 Ko. Hors la différence est de plusieurs Mo.
> Ils m'ont répondu que leur calcul est fait d'après des données Unix donc irréprochable. Ok pour moi, mais d'où vient la différence ?
> à l'heure où j'écris ce message, j'ai un espace utilisé de 339 Mo avec mon script et chez l'hébergeur, il donne 374 Mo.
> Alors ? c'est grave ?
>
> merci de me répondre et désolé si le message est un peu long

>
> @+