Teil von  SELFPHP
  +++ SELFPHP CronJob-Service :: Jetzt auch als Professional-Version verfügbar! +++



:: Anbieterverzeichnis ::

Globale Branchen

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

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP? In über 120.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


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.


 




:: Premium-Partner ::

Webhosting/Serverlösungen


Premium-Partner MECO Systemhaus GmbH & Co. KG
Premium-Partner PSW GROUP GmbH & Co. KG
Premium-Partner BPI-Systeme
Premium-Partner Pixel X
Premium-Partner
 

:: SELFPHP Sponsoren ::


Microsoft Deutschland GmbH
twosteps.net - ...Premium-Webhosting
Sedo - Bei uns wird PHP großgeschrieben
hostfactory.ch - OptimaNet Schweiz AG
ZEND - The PHP Company
Kaspersky Labs
HighText iBusiness
SELFPHP Sponsoren
 

Qozido


© 2001-2009 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt