Nur besimmte Ordner im Verzeichnis zählen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Speedy19102000
    replied
    Hallo Quetschi!

    Mit '$levelcount' meintst Du ähnlich, wie '$dirs = 0;'?
    Aber wie ich es anstellen soll, dass er bis zu der besagten Ebene anhalten und die Ordner zählen soll. Weis ich nicht. Mit einem Beispielcode währe es vielleicht einfacher, dass ich verstehe, wie Du es meinst. Ich bin Anfänger in Sachen PHP, und benötige es nur ab und zu.
    Währe daher um konstruktive hilfe dankbar.

    MfG

    Leave a comment:


  • Quetschi
    replied
    Dann erweitere die Funtion 'filecounter' um einen weiteren Parameter $levelcount.

    Beim initialen Aufruf von filecounter gibts du den Wert eins mit. In der Funktion selbst erhöhst du $levelcount um den Wert 1 und gibst $levelcount des weiteren dann den rekursiven Aufrufen mit.

    Ein Hochzählen nimmst du nur dann vor, wenn $levelcount einen bestimmten Wert hat, der deiner gewünschten Ebene entspricht.
    Last edited by Quetschi; 27-07-2021, 12:03. Reason: Fehlerkorrekturen

    Leave a comment:


  • Speedy19102000
    replied
    Originally posted by Quetschi View Post
    Versteh ich das richtig, dass du praktisch nur Ordner in einer bestimmten Verschachtelungsebene zählen willst?
    Hallo Quetschi!
    Ja, genau so ist es, wie auf dem Bild gezeigt, geht es nur um die 'Grün nummerierten Ordner' . Es geht um die zweite Ebene aller Unterordner im Hauptverzeichnis (Anstelle von Zahlen hätte ich sie auch abc, def, ghi, ...usw. benennen können). Ich habe gar nicht mehr mit Hilfe gerechnet.

    MfG

    Leave a comment:


  • Quetschi
    replied
    Versteh ich das richtig, dass du praktisch nur Ordner in einer bestimmten Verschachtelungsebene zählen willst?

    Leave a comment:


  • Speedy19102000
    replied
    Hallo Peter!

    Ich habe mir Deine Seite angeschaut und bin nicht wirklich fündig geworden, was auf meine Bedürfnisse passen könnte. Das Beispiel von Deiner Seite ...
    Originally posted by Kropff View Post
    $folder = array ('privat', 'tracker', 'phpMyAdmin'); sind meine Ordner, die ich vom Auslesen ausnehmen möchte
    ... sind feste Ordnernamen. Ab dem Ordner 'test' werden aber bei mir immer unterschiedliche Ordnernamen vergeben, welche wieder unterschiedliche Namen in weiteren Unterverzeichnissen haben.

    Beispiel: test/merere-variable-ordner1/[COLOR="green"]merere-variable-ordner2[/COLOR]/merere-variable-ordner3
    Ich benötige so etwas, wie eine Schleife, welche nur alle 'merere-variable-ordner1' in alle 'merere-variable-ordner2' zählt und nicht weiter. Die oben angehängte Grafik als Beispiel, veranschaulicht es am besten.

    Kann man in dem oben gezeigtem Code einen art Schleifenstop implementieren, wenn ja wie?

    Mit freundlichen Grüßen
    Andreas

    Leave a comment:


  • Kropff
    replied
    Ich habe mal vor zig Jahren ein Tutorial geschrieben, dass sich mit dem rekursiven Auslesen von Ordnern beschäftigt. Vielleicht hilft dir das weiter.
    https://www.peterkropff.de/tutorials...op_1/oop_1.htm

    Gruß
    Peter

    Leave a comment:


  • Nur besimmte Ordner im Verzeichnis zählen

    Hallo Forum!
    Ich habe hier ein Code, welches mir alle Ordner ab einem bestimmten Ordner anzeigt. Wie bekomme ich es hin, dass nur die Ordner gezählt werden, welche ich in der Skizze Grün markiert habe. Die Ordner in der ersten Ebene habe ich separat zählen lassen und dann abgezogen, aber die ab der dritten Ebene liegenden Ordner bekomme ich nicht hin. Es soll NUR die zweite Ebene gezählt werden.
    Code:
    <?php
     function filecounter($dir) {
     $dirs = 0;
     $path = scandir($dir);
     foreach($path as $file) {
        if($file != '.' && $file != '..') {
           if(is_dir($dir.'/'.$file)) {
              $dirs++;
              $back = filecounter($dir.'/'.$file);
              $dirs += $back[0];
           }
        }
     }
     return array($dirs);
     }
     $VERZALL = filecounter("test/")[0];
     $VERZJAH = count(glob("test/*", GLOB_ONLYDIR));
     $ANZORDNER = $VERZALL - $VERZJAH;
     echo $ANZORDNER;
    ?>
    Ich hoffe, es kann mir einer helfen. Vielen Dank im Vorraus!
    Attached Files
Working...
X