kostenloser Webspace werbefrei: lima-city


script - Ordnergrösse auslesen

lima-cityForumSonstigesSpam und sonstiges Unvergütetes

  1. Autor dieses Themas

    internetplattform

    internetplattform hat kostenlosen Webspace.

    Kennt jemand einen einfachen script um dieOrdnergrösse auf dem webserver auslesen zu können
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. michaelkoepke

    michaelkoepke hat kostenlosen Webspace.

    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
  4. Autor dieses Themas

    internetplattform

    internetplattform hat kostenlosen Webspace.

    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.
  5. 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.
  6. Autor dieses Themas

    internetplattform

    internetplattform hat kostenlosen Webspace.

    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;
    }
    
    ?>
  7. matthias-detsch

    Kostenloser Webspace von matthias-detsch

    matthias-detsch hat kostenlosen Webspace.

    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.
  8. 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.
    Entweder
    readdir($dir);


    Oder du schreibst eine Funktion read_dir($dir) ala'http://www.selfphp.de/forum/showthread.php?t=13778
  9. Autor dieses Themas

    internetplattform

    internetplattform hat kostenlosen Webspace.

    jetzt kommt diese fehlermeldung wenn ich den befehl "readdir($dir);" anstelle "read_dir($dir);" schreibe

    Warning: readdir() expects parameter 1 to be resource, string given in testscript.php on line 6
    0
  10. Auch die Option aus meinem Link mal ausprobiert?
  11. Autor dieses Themas

    internetplattform

    internetplattform hat kostenlosen Webspace.

    ich hab beides ausprobiert, gleiches ergebnis
    oder welche option meintest du
  12. 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.
  13. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!