Web 2.0 Developer
PHP: Calculer la taille d’un répertoire
2 Petites fonctions pour calculer la taille d’un répertoire en PHP:
// Pour calculer la taille d'un répertoire de façon récursive, résultat en Bytes
function TailleRepertoire($DirectoryPath) {
$Size = 0;
$Dir = opendir($DirectoryPath);
if (!$Dir)
return -1;
while (($File = readdir($Dir)) !== false) {
// On ne prends pas les points
if ($File[0] == '.') continue;
// Sous-dossier ou la taille des fichiers
if (is_dir($DirectoryPath . $File))
$Size += TailleRepertoire($DirectoryPath . $File . DIRECTORY_SEPARATOR);
else
$Size += filesize($DirectoryPath . $File);
}
closedir($Dir);
return $Size;
}
function TaillePourHumais($size) {
// Pour afficher la taille en Ko, Mo, Go...
// Adaptation: http://www.php.net/manual/en/function.filesize.php
$mod = 1024;
$units = explode(' ','B KB MB GB TB PB');
for ($i = 0; $size > $mod; $i++) {
$size /= $mod;
}
return round($size, 2) . ' ' . $units[$i];
}
$TailleEnBytes = TailleRepertoire('data/');
echo $TailleEnBytes;
echo "<br />";
echo TaillePourHumais($TailleEnBytes);
Résultat:
50996647
48.63 MB
| Imprimer l'article | Cette entrée a été posté par maiis le 1 octobre 2008 à 20:34, et placée dans PHP. Vous pouvez suivre les réponses à cette entrée via RSS 2.0. Vous pouvez laisser une réponse, ou bien un trackback depuis votre site. |
