| 
            	 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.
 
 
  |