Verzeichnis rekursiv mit glob()

home php

SEO-Wissen für erfolgreiches Online-Marketing - Komplett aktualisiert und erweitert   -  Die Suchmaschinen-Optimierung ist eine der wichtigsten Disziplinen im Online-Marketing. Wenn es Ihnen darum geht, für Ihre Webseite oder Ihren Webshop ein Top-Ranking in den SERPs zu erzielen, müssen Sie wissen, wie Suchmaschinen ticken und welche Stellschrauben Sie wie einstellen. Sebastian Erlhofers SEO-Handbuch ist für Ihre SEO-Ausbildung ein wichtiger Begleiter und ein Quell an Wissen, aus dem Sie Praxiswissen und Profitipps schöpfen.

Wir sind Mitglied im Amazon.Partnernet und können mit Affiliate-Links den Betrieb der Webseite etwas unterstützen, für Sie als Leser ist das natürlich vollkommen kostenlos.

Das ist die kleinste PHP Template-Engine, bzw. das kleinste PHP-CMS der Welt, erstellt mit der Programmiersprache PHP und 7 Zeilen Code.

Was ist glob()

Die PHP-Funktion glob() ist in der Lage Dateinamen oder Verzeichnisse, auf Basis einer RegularExpression, zu suchen bzw. zu maskieren. Als Ergebnis liefert glob() ein iterierbares Objekt zurück (siehe PHP-Doku).

Mit glob() rekursiv suchen

Das folgende Codebeispiel stammt aus dem Flatfile CMS FlightCMS und listet alle Beiträge innerhalb bzw. rekursiv von $dir auf.

foreach (glob($dir.'*', GLOB_ONLYDIR) as $file_name) 
{
    echo 'Verzeichnis: '.$file_name;

    foreach (glob($file_name.'/*.md') as $file_name) 
    {
        if (!stripos($file_name, 'index.md') && !preg_match('{_}', $file_name))
        {
            echo 'Datei: '.$file_name;
        }
    }
}

Rekursiv durchsuchen mit glob()

Die Funktion glob() beginnt in der äußeren Schleife mit dem auslesen der gefundenen Verzeichnisse GLOB_ONLYDIR und übergibt das aktuelle Verzeichnis an die innere Schleife, die dann alle enthaltenen Dateien mit dem Pattern *.md ermittelt.

Der zusätzliche if-Zweig soll dabei lediglich verhindern, das im bereits genannten FlightCMS, index.md und mit beginnendem Unterstrich _ als unsichtbar gekennzeichnete Beiträge aufgelistet werden, diese sollen verborgen bleiben.

Als Ergebnis entsteht etwa die folgende Ausgabe:

  • kategorie-1
    • index.md => wird nicht angezeigt
    • beitrag-1.md
    • beitrag-2.md
    • _beitrag-3.md => wird ebenfalls nicht angezeigt
  • kategorie-2
    • beitrag-a.md
    • beitrag-b.md

Vorteile von glob()

Der größte Vorteil der Funktion glob() liegt auf der Hand, es ist die Einfachheit mit der diese Funktion verwendet werden kann. Es reichen wenige Zeilen Code aus, um komplexe Datelisten zu maskieren und auszugeben - das ist extrem hilfreich.

Nachteile von glob()

Die Funktion glob() ist intern sehr komplex (wer hätte es gedacht) und daher auch nicht sehr performant.

Dem aufmerksamen Leser wid allerdings aufgefallen sein, das der Code nicht unendlich rekursiv im Verzeichnisbaum hinabsteigt, sondern auf eine Stufe begrenzt ist. Es ist aber recht leicht beim Auffinden eines Verzeichnis innerhalb der inneren Schleife einen erneuten Aufruf auf sich selbst zu erzeugen und das neue Verzeichnis mit $dir an die äußere Schleife weiterzugeben.


 28.01.2024    Kontakt@Oliver-Lohse.de    glob Datei Verzeichnis Durchsuchen Rekursiv

ChatGPT - Alltägliche Aufgaben mit Prompts meistern   -  Du möchtest wissen, wie du KI richtig nutzt und davon profitieren kannst? Dann wird dir dieses Workbook eine große Hilfe sein. Rainer Hattenhauer zeigt anhand einer Vielzahl praktischer Beispiele aus den unterschiedlichsten Anwendungsbereichen ganz konkret, wie KI dein Leben erleichtern kann. Egal ob du Texte verfassen, recherchieren, Bilder generieren oder deinen eigenen Programmcode erstellen möchtest. Hier kannst du auch ohne Vorkenntnisse direkt loslegen und die gängigen KI-Frontends ausprobieren. Inklusive ChatGPT, DALL-E 2, Midjourney, DeepL Write etc.

Wir sind Mitglied im Amazon.Partnernet und können mit Affiliate-Links den Betrieb der Webseite etwas unterstützen, für Sie als Leser ist das natürlich vollkommen kostenlos.

Weitere passende Beiträge

Fileupload im CMS GetSimple aktivieren

 get-simple  Upload File Datei


Das Flatfile CMS GetSimple hat zunächst den Fileupload deaktiviert. Aktivieren Sie den Upload von Daten wie Bildern u.ä damit Sie Daten hochladen können.

Externen Zugriff auf Logfiles verbieten

 htaccess  Sperren Ordner Verzeichnis Datei


So verbieten Sie den Zugriff auf das Logfile ihrer Webseite in der htaccess

Admin Supportet Filetypes in Bludit

 bludit  File Type Datei


Aus Sicherheitsgründen akzeptiert das CMS Bludit nicht alle Dateitypen zum Upload. Als Single-User im CMS, können Sie weitere Dateitypen freischalten.

Verzeichnisse und Dateien einlesen

 php  Verzeichnis Folder Directory Ordner


Sie können mit PHP ein Verzeichnis mit Ordnern und Dateien einlesen und anzeigen. Der Beitrag zeigt ein kurzes Codesegment mit dem opendir() Befehl aus PHP.

Verzeichnis mit Java anlegen

 java  Verzeichnis Ordner


Legen Sie mit nur 3 Zeile Java-Code ein Verzeichnis, Ordner bzw. Direcktory auf der Festplatte an.

Plugin für Anzeige Inhaltsverzeichnis

 bludit  TOC Inhalt Verzeichnis


Inhaltsverzeichnisse in Beiträgen haben hohe SEO Wirkung. Dieses Bludit Plugin erzeugt für jeden Beitrag ein Inhaltsverzeichnis vor dem Beitragstext.

Plugin Table of Content

 flight-cms  TOC Inhalt Verzeichnis


Automatische Inhaltsverzeichnisse sind in elektronischen Dokumentationen zum Standard geworden, in diesem Code ein einfacher Ansatz.

Impressum


CMSWorkbench.de ist eine reine Entwickler-Webseite und dient vorwiegend als Wissensspeicher für die Entwicklung von CMS

Datenschutz


Die Webseite verwendet keinerlei Tracking- oder Speicher-Mechanismen, die Rückschlüsse auf Ihre IP oder das Leseverhalten zulassen

Affiliate


Wir sind Mitglied im Amazon Partnernet und können mit Affiliate-Links (* den Betrieb der Seite etwas unterstützen, für Sie ist das natürlich kostenlos

Kontakt


Sie können mit uns über eMail Kontakt aufnehmen, schreiben Sie an Kontakt@Oliver-Lohse.de