script - Ordnergrösse auslesen
lima-city → Forum → Sonstiges → Spam und sonstiges Unvergütetes
arbeiten
aufruf
auslese
befehl
benennen
code
datei
fehlermeldung
file
funktion
gleiches ergebnis
http
option
ordner
parameter
pfad
stelle
string
url
verzeichnis
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hi,
hier ist mein Script, welches ich benutze. Es ruft sich rekursiv selbst auf, für alle Unterordner,
Der Aufruf erfolgt einfach über:
echo dir_size("Pfad zum Ordner");
/** * Ermittelt Speichergröße der Ordnerstruktur * @param dir (String) OrdnerPfad * @param size (int) Anfangswert sonnst 0 * @return (int) Gibt die Speichergröße zurück */ function dir_size ($dir, $size = 0){ $file = $size; $reader = read_dir($dir); for ($i = 1; $i < sizeof($reader)+1; $i++) { $exp = explode(".", $reader[$i]); if (isset($exp[0]) && isset($exp[1])){ $file = $file + filesize($dir."/".$reader[$i]); } else { $file = dir_size($dir."/".$reader[$i], $file); } } return $file; }
Ich hoffe ich konnte dir helfen.
MFG Micha
Beitrag zuletzt geändert: 30.12.2015 11:47:12 von michaelkoepke -
danke für den script.
aber bei mir wird dies ausgegeben ab bildschirm-browser.
=====
echo dir_size("unicpfad "linux webserver)"); function dir_size ($dir, $size = 0){ $file = $size; $reader = read_dir($dir); for ($i = 1; $i < sizeof($reader)+1; $i++) { $exp = explode(".", $reader[$i]); if (isset($exp[0]) && isset($exp[1])){ $file = $file + filesize($dir."/".$reader[$i]); } else { $file = dir_size($dir."/".$reader[$i], $file); } } return $file; }
=====
Habe dein COde so in eine Datei zb. groesse.php gepseichert und im browser aufgerufen. -
Am Anfang vor den Code muss noch
<?php
Und ganz am Ende:
?>
Dann wird der PHP-Code auch vom Webserver geparst.
So wie du es jetzt hast, wird es als HTML ausgegeben.
Und ganz wichtig, die Datei nicht mit .html sondern .php benennen. Ansonsten weiss der Webserver auch nicht, dass er dort PHP hat. -
ich habe es als php gespeicher, aber der code geht trotzdem nicht. es kommt eine fehlermeldung:
Fatal error: Call to undefined function read_dir() in testscript.php on line 6
http://mypage.ch.tf/testscript.php
<?php echo dir_size("domainspeicher"); function dir_size ($dir, $size = 0){ $file = $size; $reader = read_dir($dir); for ($i = 1; $i < sizeof($reader)+1; $i++) { $exp = explode(".", $reader[$i]); if (isset($exp[0]) && isset($exp[1])){ $file = $file + filesize($dir."/".$reader[$i]); } else { $file = dir_size($dir."/".$reader[$i], $file); } } return $file; } ?>
-
matthias-detsch schrieb:
du musst erst die funktion deklarieren.
das script wird von oben nach unten abgearbeitet, an der stelle wo du also die funktion aufrufst, gibt es diese also noc gar nicht.
Stimmt so nicht. Es ist egal, wo Funktionen im Script deklariert werden. Ob diese am Anfang oder am stehen ist völlig egal.
Zum Script.
Entwederreaddir($dir);
Oder du schreibst eine Funktion read_dir($dir) ala'http://www.selfphp.de/forum/showthread.php?t=13778 -
Auch die Option aus meinem Link mal ausprobiert?
-
Bitte sehr:
<?php function fileSizeSum($verzeichnis) { $groesse=0; $dateien=scandir($verzeichnis); foreach ($dateien as $dn) { if ($dn==='.' or $dn==='..') continue; if (is_dir($verzeichnis.'/'.$dn)) { $groesse+=fileSizeSum($verzeichnis.'/'.$dn); } else { $groesse+=filesize($verzeichnis.'/'.$dn); } } return $groesse; } print fileSizeSum('.'); ?>
Die Funktion ist rekursiv, also werden Dateien in Unterverzeichnissen mit aufaddiert. Sollte das nicht erwünscht sein, ersetze Zeile 9 durch ein 'continue;'.
Diese Variante setzt zwingend ein PHP 5 oder neuer voraus, da es die Funktion 'scandir()' vorher nicht gab.
Bei älterem PHP muss man mit 'readdir()' arbeiten; 'readdir()' ist für Verzeichnisse wie 'fgets()' für Dateien: es liest pro Aufruf einen Dateinamen aus einem Verzeichnis, das vorher mit 'opendir()' geöffnet wurde. Das Ergebnis von 'opendir()' wäre dann die 'Resource', die 'readdir()' laut der Fehlermeldung gerne hätte.
H. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage