[Tableaux] Différence de taille d'un dossier entre fonction PHP et commande Linux
Yop,
Voulant utiliser la fonction shell_exec() le moins possible j'ai donc remplacé ma fonction de calcul utilisant la commande 'du -shc' par une fonction utilisant que du PHP.
Mon problème est le suivant, la taille retourné par les deux fonctions est différente !!
La fonction utilisant shell_exec() :
Code:
1 2 3 4 5 6
| function gzw_du($repertoire)
{
return exec('du -shc ' .escapeshellarg($repertoire). ' | tail -1 | cut -f1');
}
echo gzw_du('/var/www/panel/'); |
Le résultat retourné est 2.7 Méga.
La fonction utilisant que du PHP :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| 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);
return $taille;
}
echo taille_dossier('/var/www/panel/'); |
Le résultat retourné est 2221783 Octets (résultat converti en méga ici).
Qu'ai-je oublié, mal fait ?
Merci de votre. :calim2: