Bonsoir,
J'ai une fonction qui me renvoie la taille d'un fichier, de ce côté la tout se passe bien en revanche pour les répertoires(dossier) tout plante et je ne comprend pas d'ou vient le problème ?
la function:
function taille($fichier){
// Lecture de la taille du fichier
$taille = filesize($fichier);
// Conversion en Go, Mo, Ko
if ($taille >= 1073741824)
{ $taille = round($taille / 1073741824 * 100) / 100 . " Go"; }
elseif ($taille >= 1048576)
{ $taille = round($taille / 1048576 * 100) / 100 . " Mo"; }
elseif ($taille >= 1024)
{ $taille = round($taille / 1024 * 100) / 100 . " Ko"; }
else
{ $taille = $taille . " Octet"; }
if($taille==0) {$taille="-";}
return $taille;
}
EUREKA !
function taille_dossier($rep){
$racine=@opendir($rep);
$taille=0;
while($dossier=@readdir($racine)){
if(!in_array($dossier, array("..", "."))){
if(is_dir("$rep/$dossier")){
$taille+=taille_dossier("$rep/$dossier");
}else{
$taille+=@filesize("$rep/$dossier");
}
}
}
@closedir($racine);
if ($taille >= 1073741824)
{ $taille = round($taille / 1073741824 * 100) / 100 . " Go"; }
elseif ($taille >= 1048576)
{ $taille = round($taille / 1048576 * 100) / 100 . " Mo"; }
elseif ($taille >= 1024)
{ $taille = round($taille / 1024 * 100) / 100 . " Ko"; }
else
{ $taille = $taille . " Octet"; }
if($taille==0) {$taille="-";}
return $taille;
}
Oublié disk_total_space
Ben sa plante parce que c'est pas fait pour, fichier != repertoire.
Pour un directory, tu peux boucler sur les fichiers qu'il contient et additionner les différentes tailles.
Sinon pour un truc plus académique il y a ca.
Tout s'explique ^^ Je viens de fouiller la doc je vais voir si j'arrive à adpater " disk_total_space" à la place de "filesize".