Nur besimmte Ordner im Verzeichnis zählen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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!
    Angehängte Dateien
    Sein oder Nichtsein, das ist hier die Frage!

  • #2
    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
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      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 ...
      Zitat von Kropff Beitrag anzeigen
      $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
      Sein oder Nichtsein, das ist hier die Frage!

      Kommentar


      • #4
        Versteh ich das richtig, dass du praktisch nur Ordner in einer bestimmten Verschachtelungsebene zählen willst?
        Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
        Schön - etwas Geschichte kann ja nicht schaden.
        Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

        Kommentar


        • #5
          Zitat von Quetschi Beitrag anzeigen
          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
          Sein oder Nichtsein, das ist hier die Frage!

          Kommentar


          • #6
            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.
            Zuletzt geändert von Quetschi; 27.07.2021, 13:03. Grund: Fehlerkorrekturen
            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
            Schön - etwas Geschichte kann ja nicht schaden.
            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

            Kommentar


            • #7
              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
              Sein oder Nichtsein, das ist hier die Frage!

              Kommentar

              Lädt...
              X