Sven Rautenberg: Verzeichnis/Dateigröße

Beitrag lesen

Da ich aber Anfänger bin, hab ich keine Ahnung wie ich das Script
ansprechen muß.

Ganz einfach. Du baust die zwei Funktionen in deine PHP-Seite ein - oder noch besser, du speicherst die in einer separaten Datei und bindest diese Datei mit dem Befehl

include("externedatei.php");

in deine Seite ein (wenn du mehrere Seiten hast, mußt du bei Veränderungen nicht alle Seiten bearbeiten, sondern nur einmal zentral).

Der Funktionsaufruf ergibt sich aus der Funktionsdefinition. Du hast zwei Funktionen, von denen dir aber nur eine die Größe des Verzeichnisses liefert:

function dirsize($dir)

Ein kurzer Blick zeigt, daß die Funktion die Angabe des Verzeichnisses erwartet, desse Größe du wissen willst. Der Aufruf erfolgt mittels

$groesse=dirsize("verzeichnis");

wobei "verzeichnis" auch eine Variable mit dem Verzeichnis sein kann, und sie darf zwar auch $dir heißen, muß es aber nicht zwingend.

Hinterher hast du die Größe des Verzeichnisses und aller Unterverzeichnisse in $groesse in Byte.

Wenn du das in lesbarer Form drucken willst, hilft dir die erste Funktion.

Beispiel:
echo "Das Verzeichnis ist ".humansize($groesse)." groß";

Die Funktion nimmt eine Zahl in Byte entgegen und wandelt sie in die größte mögliche Einheit (KB, MB, GB), die noch Zahlen größer als 1 vor dem Komma hat. Die Einheit wird automatisch drangehängt, du erhälst also keine Zahl zurück, sondern einen String, der im Beispiel oben direkt ausgegeben wird. Es macht Sinn, so vorzugehen und den String nicht noch irgendwo zwischenzuspeichern, denn die Funktion rundet, dir gehen also Nachkommastellen verloren. Du solltest die Bytezahl speichern und bei Bedarf humansize aufrufen, wenn du eine Druckausgabe haben willst. Natürlich kannst du auch die Bytezahl direkt ausgeben, aber das ist nicht unbedingt sehr übersichtlich, und man muß schon genau hinsehen, um festzustellen, ob da schon Gigabyte stehen oder noch Megabyte.

- Sven Rautenberg