Teil von  SELFPHP
Professional CronJob-Service

Suche

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP?
In über 130.000 Beiträgen finden Sie sicher die passende Antwort!  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

:: Qozido ::

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.   

 
 
Alle Bilder eines Verzeichnisses auflisten

Am Ende der Seite finden Sie das komplette Beispiel als Download.

Systemvoraussetzung

  • Linux
  • Windows
  • PHP 4 >= 4.3.0
  • PHP 5

Datei(en)

imagesVerz.php

Problem


Sie haben ein Verzeichnis mit Bildern und möchten diese auf Ihrer Website verlinken. Neben den Bildern befinden sich in diesem Verzeichnis allerdings auch andere Dateien wie z. B. PHP-Dateien oder TXT-Dateien, die nicht angezeigt werden sollen. Außerdem wollen Sie nicht nur eine Verlinkung zu den Bildern, sondern auch die Dateigröße sowie die letzte Aktualisierung anzeigen.


Lösung

Bei näherem Betrachten des Problems wird klar, dass die Lösung nur ein Schleifendurchlauf sein kann, der jede Datei auf ihre Endung überprüft und das Ergebnis ausgibt. Zum Glück steht uns hier wieder eine PHP-Funktion hilfreich zur Seite, die uns sehr viel Arbeit abnimmt. Wir durchlaufen zwar das Verzeichnis, lassen aber jede Datei durch die Funktion glob() überprüfen.

Wir müssen lediglich das Verzeichnis und die Dateiendung angeben, den Rest erledigt die Funktion. Findet sie eine Datei, erhalten Sie als Rückgabewert den Pfad zu der Datei. Somit haben wir direkt die korrekte Pfadangabe für die Darstellung.

Bitte beachten Sie, dass die Funktion glob() nicht mit entfernten Dateien auf einem anderen Server arbeiten kann. Die zu suchenden Dateien müssen sich auf dem gleichen Server befinden.

function listPicture($dir=".",$type="jpg")
   @param   string   $dir
   @param   string   $type
   @return   array    $picture

Als Erstes übergeben wir unserer Funktion das Verzeichnis und die Dateiendung ($pic = listPicture("bilder/","gif");) für unsere Verzeichnisauflistung (45). Sollten Sie der Funktion leere Werte übergeben, wird das aktuelle Arbeitsverzeichnis nach der Dateiendung jpg durchsucht. Die Funktion glob() (47) durchläuft das komplette Verzeichnis und sucht nach der gesuchten Dateiendung – gibt es einen Treffer, so wird der Pfadname (48) inkl. Dateiname, der Dateigröße (49) (hier erfolgt schon die Umrechnung in KB) sowie des letzten Aktualisierungsdatums (50) der Datei in das Array $picture gespeichert. Ist das Verzeichnisende erreicht, wird mit return (54) das Array zurückgegeben.

45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
function listPicture($dir=".",$type="jpg") {
    
$x 0;
    foreach (
glob($dir."*.".$type) as $filename)    {
        
$picture[$x]['file'] = $filename;
        
$picture[$x]['size'] = filesize($filename) / 1024;
        
$picture[$x]['time'] = filemtime($filename);
        
$x++;
    } 
    
    return 
$picture;
}

$pic listPicture("bilder/","gif");
Beispiel 7.1: imagesVerz.php

In $pic haben wir jetzt alle Bilder gespeichert, wir müssen lediglich den Inhalt korrekt auflisten. Aus diesem Grund durchlaufen wir das vollständige Array (66). Selbstverständlich hätten Sie das auch direkt in der Funktion listPicture() machen können, besser ist es jedoch, beide Aufgaben zu trennen. Jetzt müssen wir lediglich die Ausgabe korrekt darstellen, also einen Link (72) zu der Datei erstellen und das Datum (74) sowie die Dateigröße (73) formatieren.

66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
for($x=0;$x<count($pic);$x++) {
    
    
$file    =    $pic[$x]['file'];
    
$size    =    number_format($pic[$x]['size'], 1',''.');
    
$date    =    date("d.m.Y, H:i:s"$pic[$x]['time']);
    
    echo 
'<a href="'.$file.'">'.$file.'</a>';
    echo 
' (Größe: ' $size ' KB - ';
    echo 
'Letzte Änderung: ' $date ')';
    echo 
'<br><br>';

}
Beispiel 7.2: imagesVerz.php

Das Ergebnis unserer Bilderauflistung würde in unserem Fall folgendermaßen aussehen. Sie werden sicherlich die Darstellung anpassen – das ist auch gewünscht.

bilder/linuxpenguin. gif (Größe: 191,4 KB – Letzte Änderung: 12.03.2006, 11:28:30)
bilder/linux.gif (Größe: 1,5 KB – Letzte Änderung: 12.03.2006, 11:28:20)
bilder/windows.gif (Größe: 1,9 KB – Letzte Änderung: 12.03.2006, 11:59:25)


 


Dieses Skript aus dem SELFPHP KOCHBUCH wurde von SELFPHP unter dem "Tarif Mc500" von McAc.net-Webhosting erfolgreich ausgeführt und getestet!

Auf der Übersichtseite unter "McAc.net – Webhosting zu diesem Buch" finden Sie weitere Informationen zu dem Webhostingpaket, dass durch SELFPHP getestet wurde.




 

Download

Info   ZIP BZIP2 TARGZ
Größe   1.54 Kilobyte 1.69 Kilobyte 1.63 Kilobyte

Alle Beispiele als PHP-Datei(en)

Hier haben Sie die Möglichkeit, sich sämtliche auf dieser Seite gezeigten Beispiele als PHP-Dateien direkt downzuloaden.

Umständliches Copy & Paste ist daher nicht mehr notwendig, da alle Beispiele sofort ausprobiert werden können.

Sie haben bei der Auswahl der bereitgestellten Downloads mehrere Möglichkeiten, je nachdem welches Komprimierungsverfahren Sie bevorzugen.

Zurück zur Übersichtsseite


 




:: Premium-Partner ::

Webhosting/Serverlösungen

Profihost AG weitere Premium-Partner
 

:: SELFPHP Sponsor ::

Kaspersky Labs GmbH weitere Sponsoren
 


:: Buchempfehlung ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Webhosting/Serverlösungen

Suchen Sie den für Sie passenden IT-Dienstleister für Ihr Webhosting-Paket oder Ihre Serverlösung?

Sie sind nur ein paar Klicks davon entfernt!


 

Ausgewählter Tipp im Bereich PHP-Skripte


Datum/Uhrzeit von MySQL-Format ins deutsche Format und zurück

Weitere interessante Beispiele aus dem SELFPHP Kochbuch finden Sie im Bereich PHP-Skripte
 

SELFPHP Code Snippet


CRC32-Prüfsumme als nicht vorzeichenbehafteten Integer berechnen

Weitere interessante Code Snippets finden Sie auf SELFPHP im Bereich PHP Code Snippets
 
© 2001-2016 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt
© 2005-2016 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de