par
djgje » 25 mai 2007, 13:20
Salut à tous!
Alors voila, j'ai un site sur lequel j'upload des fichiers.
Je voudrais trouver une fonction (c'est ca qu'on dit non?) qui me permettera d'afficher quelque chose du genre:
"Taille totale des uploads: ... Mo" ou Giga par après (dépendant de l'espace occupé par mes fichiers)
En fait j'ai trouvé quelques codes mais je n'arrive pas à les faire fonctionner...
Déjà ils ne s'occupent pas des sous-dossiers...
Voilà merci d'avance de votre aide!
Le code quej'ai trouvé mais qui m'affiche toujours 0 octets est censé s'occuper aussi de dire la taille en o, ko, mo, ou go...
Le voici:
Code : Tout sélectionner
function poids($rep)
{
$r = @opendir($rep);
while( $dir=@readdir($r) )
{
if( !in_array($dir, array("..", ".")) )
{
if( is_dir("$rep/$dir") )
{
$t += poids("$rep/$dir");
}
else
{
$t += @filesize("$rep/$dir");
}
}
}
@closedir($r);
return $t;
}
function unite($valeur)
{
if( $valeur >= pow(1024, 3) )
{
$valeur = round( $valeur / pow(1024, 3), 2);
return $valeur . ' go';
}
elseif( $valeur >= pow(1024, 2) )
{
$valeur = round( $valeur / pow(1024, 2), 2);
return $valeur . ' mo';
}
else
{
$valeur = round( $valeur / 1024, 2);
return $valeur . ' ko';
}
}
$dir = './webmail';
echo 'taille du dossier : ' . unite(poids($dir));[/code]
Salut à tous!
Alors voila, j'ai un site sur lequel j'upload des fichiers.
Je voudrais trouver une fonction (c'est ca qu'on dit non?) qui me permettera d'afficher quelque chose du genre:
"Taille totale des uploads: ... Mo" ou Giga par après (dépendant de l'espace occupé par mes fichiers)
En fait j'ai trouvé quelques codes mais je n'arrive pas à les faire fonctionner...
Déjà ils ne s'occupent pas des sous-dossiers...
Voilà merci d'avance de votre aide!
Le code quej'ai trouvé mais qui m'affiche toujours 0 octets est censé s'occuper aussi de dire la taille en o, ko, mo, ou go...
Le voici:
[code]function poids($rep)
{
$r = @opendir($rep);
while( $dir=@readdir($r) )
{
if( !in_array($dir, array("..", ".")) )
{
if( is_dir("$rep/$dir") )
{
$t += poids("$rep/$dir");
}
else
{
$t += @filesize("$rep/$dir");
}
}
}
@closedir($r);
return $t;
}
function unite($valeur)
{
if( $valeur >= pow(1024, 3) )
{
$valeur = round( $valeur / pow(1024, 3), 2);
return $valeur . ' go';
}
elseif( $valeur >= pow(1024, 2) )
{
$valeur = round( $valeur / pow(1024, 2), 2);
return $valeur . ' mo';
}
else
{
$valeur = round( $valeur / 1024, 2);
return $valeur . ' ko';
}
}
$dir = './webmail';
echo 'taille du dossier : ' . unite(poids($dir));[/code][/code]