phpbar.de logo

Mailinglisten-Archive

[php] Freien Serverplatz ermitteln -> rekursive Funktion

[php] Freien Serverplatz ermitteln -> rekursive Funktion

Cyrill Schumacher webmasterbhs_(at)_bluewin.de
Thu, 16 Dec 1999 19:21:29 +0100


> Kann irgendwie nicht hinhauen. Danach hätte ich noch über 210 MB
> Speicherplatz übrig, insgesamt hab ich aber nur 50 MB gemietet.
> Geht es nicht umgekehrt, dass ich auslesen kann, wie groß die
Verzeichnisse
> mitsamt Unterverzeichnissen sind? Dann könnt mans ja einfach
errechnen...

Problem: Klar man kann mit php die Grösse der Dateien in
EINEM Verzeichnis ermitteln, jedoch muß man ja irgendwie
dem php Script mitteilen, wieviele Unterverzeichnisse
es gibt, die es zu öffnen hat, um darin nach Dateien zu suchen.
Bis lang stelle ich mir das so vor, dass man ja für jedes
zuöffnende Unterverzeichnis eine while() oder for()
Schleife machen muß, wenn ich die Anzahl der Unterverzeichnisse
weiss, wenn nicht kann es sein, dass es praktisch unendliche
viele Schleifen in der Schleife gibt. Klar ? Vielleicht folgender
Code:

$delete gibt an ein übergeordnetes Verzeichnis oder Dateiname,
keine Ahnung was es ist, aber es soll auf jeden Fall
gelöscht werden und ich weiss auch nicht, ob es noch
weitere Unterverzeichnisse zu löschen gibt !

elseif(isset($delete) AND $delete!=$selfphp) {
 if (is_file($delete)) {
 unlink($delete);
 redir(); // eine header() Location Funktion
 }
 else {
 _(at)_unlink("./".$delete."/".$selfphp);
$d = dir("./".$delete);
while($entry=$d->read())

//-------------------------------
     if (is_file($entry)) {
     unlink($entry);
    }
    else {
    _(at)_unlink("./".$entry."/".$selfphp);
    $d2 = dir("./".$entry);
    while($entry2=$d2->read())

//    und so weiter und so fort ...
    }
$d2->close();
 _(at)_rmdir($entry);
//---------
}

$d->close();
 _(at)_rmdir($delete);
 redir();
 }
}

Anstatt unlink() kommt dann dahin filesize()

Kann der Lösungsansatz sein, dass ich daraus eine rekursive Funktion
machen muß ????
Gibt es schon Lösungen ?
____
Cyrill




php::bar PHP Wiki   -   Listenarchive