Cherub: Ordnergröße ermitteln

Moin allerseits.

Bisher habe ich immer wie folgt Ordnergröße ermittelt :

$home = verzeichnis/
$bytes = exec("du -b ". $home ." | awk '{print $1}'");
$logbytes = round((($bytes-4096) / 1048576),2);
if ($bytes > 4096 && $logbytes == 0) {$logbytes = "< 0,1";}

bisher funktionierte das ganz gut ... nun will ich das ganze aber auch auf dem Webspaces eines Freundes testen, dort geht es aber partout nicht. Problem : ich kann nicht auf die Kiste drauf - da es nur gemieteter Webspace ist. Es muss doch noch andere Möglichkeiten geben, immerhin schafft es mein Filezilla auch die Ordnergrößen anzugeben ... nur will ich deshalb nicht den Source Code da jetzt durchforsten :/

euer
CHERUB

  1. Hi,

    bisher funktionierte das ganz gut ...

    Zufall.

    Es muss doch noch andere Möglichkeiten geben,

    Mit opendir(), readdir(), filesize() und einer rekursiven Schleife mußt Du halt die Größen der einzelnen Dateien addieren.

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
    1. Mit opendir(), readdir(), filesize() und einer rekursiven Schleife mußt Du halt die Größen der einzelnen Dateien addieren.

      hat geholfen danke :)

      hier mal ein kleines schnelles Proggie was den aktuellen Ordner ausliest und die Bytes übersichtlich addiert :P

      <?php

      $bytes = 0;

      $handle=opendir('.');
      while ($file = readdir ($handle)) {
         if ($file != "." && $file != "..") {
             echo $bytes ."+";
             $bytes = $bytes + filesize($file);
             echo " ". filesize($file) ."=". $bytes ."<br>";
         }
      }
      closedir($handle);
      echo "GESAMT : ". $bytes ." bytes";
      ?>

      mfg

      CHERUB

      1. Hi,

        und das:

        echo $bytes ."+";
               $bytes = $bytes + filesize($file);

        nur aufrufen, wenn es sich um eien Datei handelt. Wenn es ein Ordner ist, die Funktion entsprechend neu aufrufen und dafür sorgen, daß der ermittelte Wert zurückgegeben und ebenfalls addiert wird. Das war's dann schon. ;-)

        Gruß, Cybaer

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!