Verzeichnisgröße ermitteln
Autor: Ralf v.d.Mark
eingetragen: Donnerstag, 11. Oktober 2007 um 14:22 Uhr (41/2007 Kalenderwoche)
geändert: Donnerstag, 01. Februar 2018 um 13:22 Uhr (5/2018 Kalenderwoche)
Keywords: Datei Verzeichnis Byte Bit MB GB lesbar
Kategorien: PHP,
Text:
Das Script ermittelt die größe eines Verzeichnisses inkl. aller Unterverzeichnisse
Quellcode:
<?php
/** ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
*
* @name datei: Verzeichnisgroesse_ermitteln.php
* @abstract Diese Dateia ermittelt die groesse eines Verzeichnisses inkl. Unterverzeichnissen
* @author Ralf von der Mark <ralf@website-vdm.de>
* @copyright Copyright (c) 2007, Ralf von der Mark, www.WebSite-vdM.de
* @version Version vom 11.10.2007 um 14:10:18 Uhr
*
* ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ */
function lese_verz_groesse($verz_pfad='.')
{
$zaehler = 0;//Zaehler starten
$result[$verz_pfad] = 0;
$verzeichn = opendir($verz_pfad);
if ($verzeichn) {
while (false !== ($eine_datei = readdir($verzeichn))) {
if ($eine_datei != "." && $eine_datei != "..") {
$verz_name = $verz_pfad . "/" . $eine_datei;
if (is_dir($verz_name)) {
$arr_verz = lese_verz_groesse($verz_name);
while (list($key, $value) = each ($arr_verz)) {
$zaehler++;//raufzaehlen
$result[$key] = $value;//gefunden
}//ENDE: while (list($key, $value) = each ($arr_verz))
} else {
$result[$verz_pfad] += filesize($verz_name);
}//ENDE: if (is_dir($verz_name))
}//ENDE: if ($eine_datei != "." && $eine_datei != "..")
}//ENDE: while (false !== ($eine_datei = readdir($verzeichn)))
}//ENDE: if ($verzeichn)
closedir($verzeichn);
return $result;
}//ENDE: function lese_verz_groesse($verz_pfad)
$data = lese_verz_groesse();//oder 'c:/www/irgendeinordner/'
$summensammlg = 0;//Summen-Variable starten
$verz_sammlg = '';//Variable starten
foreach ($data as $schluessel => $verz_groesse) {
$summensammlg += $verz_groesse;
$verz_sammlg .= $schluessel.' ==> '.$verz_groesse.' byte
<br>
';
}//ENDE: foreach ($array as $schluessel => $$verz_groesse)
echo 'Gesamtgröße: '.$summensammlg.' byte
<hr />
'.$verz_sammlg;
function lesbare_dateigroesse($groesse, $hinter_komma)
{
if (!empty($groesse)) {
$a_groessen_name = array('Bytes','KB','MB','GB','TB','PB','EB','ZB','YB');
$groesse_gerundet = round($groesse/pow(1024,($i = floor(log($groesse, 1024)))),
$hinter_komma).' '.$a_groessen_name[$i];
return str_replace('.', ',', $groesse_gerundet);
} else {
return '0 Bytes';
}//ENDE: else ==> if(!empty($groesse))
}//ENDE: function lesbare_dateigroesse($groesse, $hinter_komma)