Tutorial: Einfach mit PHP Ordner auslesen und Dateien und Bilder anzeigen.


Mit PHP ist es auf einfache Art und Weise möglich einen Ordner auszulesen und dessen Inhalt auch entsprechend anzeigen zu lassen. Ich habe das Thema etwas aufgebohrt und möchte hier ein paar verschiedene Möglichkeiten darstellen. Mein Code bezieht sich auf die aktuelle 5er PHP Version, wer tatsächlich noch mit PHP 4 arbeitet, sollte schleunigst ein Update vornehmen. Das ist eine Frage der Sicherheit und Funktionalitäten werden mit Versionsupdates auch nicht weniger.

Zur Demonstration habe ich im Hauptordner 3 Unterordner angelegt.

  • “files” = Dokumente und Zip-Datei
  • “images” = Bildateien (jpg)
  • “mixed” = Dokumente und Bilddateien gemischt

Im weiteren werde ich jetzt auf diese Ordner zugreifen und eine einfache Ausgabe der darin enthaltenen Dateien erzeugen. Besonders beim “images” Ordner habe ich mit ein bisschen jQuery und CSS eine gute Möglichkeit das ganze auch noch schick zu präsentieren, aber dazu später mehr. Fangen wir an!

Einleitung – einfache Ausgabe

Mit Version 5 hielt die Funktion scandir() Einzug in die PHP Welt. Diese liest den angegebenen Ordner aus und bildet einen Array mit den Dateien im Ordner. Mit einer foreach Schleife kann ich diesen Array nun ausgeben lassen und so mit 3 Zeilen Code den Inhalt eines Ordners anzeigen lassen.

Standardmäßig wird der mit scandir() gebildete Array alphabetisch aufsteigend sortiert. Hier kann ich durch den zusätzlichen Parameter 1 die Sortierung auch umkehren. Und so sieht das Ganze bisher in Aktion aus: Beispielseite Wie im Beispiel zu sehen, werden neben den “echten” Dateien auch “.”, “..” ausgelesen. Die stören natürlich etwas, aber soviel erstmal zur Einleitung.

Dateien aus Ordner auslesen und ausgeben

Anzeige als Liste inkl. Dateigröße, Dateityp und Direktverlinkung

Jetzt soll das Ganze zu einer sinnvollen Anzeige erweitert werden. Dazu sind folgende Ergänzungen im Code notwendig.

  • Ordnername zur Wiederverwendung in Variable speichern
  • Dateiinformationen mit pathinfo() Funktion abfragen
  • Dateigröße mit filsize() Funktion ermitteln und umrechnen
  • “.” und “..” Ordner von Anzeige ausschließen
  • HTML ergänzen – Ausgabe als Liste mit Links zur Datei

Code

Übrigens bin ich kein Freund davon umfangreiche HTML Ausgaben in echo Befehle zu packen, deshalb trenne ich PHP von HTML soweit das möglich ist. Und so sieht es jetzt noch ohne CSS aus.
Demo

Bilder aus Ordner auslesen und anzeigen

Anzeigen als Vorschau inkl. Dateiname, Dateigröße und Direktverlinkung

Befinden sich ausschließlich Bilder im Ordner ist der Code von der Dateianzeige oben genauso für den Bilderordner verwendbar. Einzig die HTML Ausgabe innerhalb der foreach Schleife ändert sich ein wenig.

Code

Mit ein bisschen CSS lässt sich die ausgegebene Liste ein bisschen schicker darstellen.

CSS Code

Demo

Weitere Beispiel

Ergänzt man den Code um ein bisschen jQuery in dem man auf Slideviewer, Slideshow oder Lightbox Plugins zurückgreift wird die Anzeige eines Bilderordners eine runde Sache. Zusätzlich kann man die Vorschaubilder mit dem genialen timthumb Script dynamisch generieren lassen und so auch das angezeigte Format vereinheitlichen, was sehr nützlich ist, wenn sich im Ordner Bilder verschiedener Dimensionen oder Ausrichtungen befinden.

Hier nun ein paar Anwendungsbeispiele die oben genannter Scripte bedienen.

Bilder und Dateien aus Ordner auslesen und anzeigen

Bilder mit Vorschau und Dateien als Liste

Um die Ausgabe flexibler zu gestalten ist es natürlich zu empfehlen Bilder und anderen Dateien in verschiedenen Ordnern abzulegen. Wenn dies nicht geht, gibt es auch eine relativ einfache Form die Ausgabe von Bildern und Dateien zu trennen.

Code

Die HTML Ausgabe erfolgt hier mit Hilfe von DIV Bereichen, das ist für die Variante flexibler, weil die Benutzung von Listen auf Grund der unterschiedlichen Styles nicht ohne Umstand möglich ist.

CSS Code

Noch ein wenig jQuery hinzugefügt um dynamisch alternierende Hintergrundfarben für die Dateien zu generieren.

jQuery Code

Und so sieht es aus!
Demo

Download

Enthalten sind alle hier gezeigten Beispiele sowie alle dafür notwendigen Dateien. Der Code ist kommentiert und sollte keine Fragen offen lassen. Wenn doch gilt wie immer: Bei Fragen fragen!
Download

Hinweis in eigener Sache!
Das Script ist meine persönliche Lösung, ich erhebe keinen Anspruch darauf, dass diese auch die Beste ist. Änderungen, Verbesserungen und Optimierungen am Script sind ausdrücklich erlaubt. Die Benutzung des Scriptes erfolgt auf eigene Gefahr. Für eventuelle Schäden, die durch den Einsatz bzw. die Nutzung des Scriptes entstehen, übernehme ich keine Haftung.
23. Oktober 2012 Kategorie: Demos & Tutorials 1



19 Kommentare zu “Tutorial: Einfach mit PHP Ordner auslesen und Dateien und Bilder anzeigen.”

  1. nova.faca sagt:

    interesting and good organized site.
    thank you for the tutorial (-:

  2. Artur sagt:

    Danke sehr hilfreich und ein super Ansatz.

  3. Garmon sagt:

    Vielen Dank! Vor allem der Hinweis auf Trennung von php und Html Code..sehr nützlich.
    Garmon

  4. Remmidami sagt:

    Sehr, sehr nützlich!

  5. Steppenwolf sagt:

    Goil erklärt, super Tutorial.
    DANKE!!!

  6. Rene sagt:

    Hallo.

    Vielen Dank für die Scripte.
    Wenn ich in der Bildanzeige auch einen Ordner ausklammern möchte, z.B. Ordner “Thumb”, welchen Code müsste ich als if ($bild != einsetzen?

    Vielen Dank.

  7. Ralf sagt:

    Hi,
    wie muss ich es anstellen
    damit er zb. in der Vorschau nach 4 Bildern einen Zeilenbruch macht? Bekomme es nicht hin :-(
    Jemand nen kurzen schnippsel für mich?
    Muss ja eigentlich hierdran liegen nur wie muss ich das anpassen?

    DANKE

    Gruss
    Ralf

  8. Ralf sagt:

    Im vorrigen post hat er den PHP Code nicht übermittelt deswegen so :-)

    Im Script images_lightbox.php
    ist es an der Zeile 53-57 zu ändern…nur wie?

    DANKE

  9. Jürgen sagt:

    Du bist spitze Meister!!

  10. Robert sagt:

    nice tutorial i really liked to read it !

  11. Frank sagt:

    Sehr hilfreiche Seite!

    Danke Dir!

  12. Jörg sagt:

    Super Tutorial. Ich werde es in mein selbst entwickeltes CMS integrieren.

  13. Thomas sagt:

    Ich habe keine großen PHP-Kenntnisse, deshalb bitte ich um schonende Behandlung ;-) Ich möchte Dateien wie oben beschrieben (bsp 2) aus einem Verzeichnis (www.domain.de/2010/uploads/ordner/)auslesen lassen. Den Pfad gebe ich mit “../2010/uploads/ordner” an. Die dort vorhandenen Dateien werden auch ausgelesen und korrekt angezeigt. Die Verlinkung/das Öffnen funktioniert aber leider nicht. Die Dateien werden unter http://www.domain.de/2010/2010/uploads/ordner/beispiel.datei aufgerufen und führen so zum Fehler. Da ja quasi der Ordner “2010″ doppelt ist. Wie kann ich das Problem lösen?

    Vielen Dank für eure Hilfe

  14. sud sagt:

    hallo

    kann ich auch iwi den kompletten phat zum bild jedem bild mit ausgeben ist das möglich?

    ansonsten super erklärt danke

  15. Ronny sagt:

    Hallo super Script. Nur bei mir werden vor den Thumbs Punkte angezeigt. Wo kommen den diese her? Die stören in der Ansicht ein wenig.

  16. faehnspueppi sagt:

    Hallo, danke für die Schnipsel, sehr hilfreich. Aber sag mal warum ist da immer ein Semikolon hinter der foreach-Schleife?

  17. Na_Ich :-) sagt:

    Eine gute Tat die du hier tust! Danke :)

  18. Amaster sagt:

    Gibt so eine “Vorschau” wie bei den Bildern auch für Videos(mp4,ogg,oder auch ein anderes format)?

Hinterlasse eine Antwort