burghi'sphp-dummies.de
PHP für Einsteiger und Fortgeschrittenere - an laufenden Scripten erklärt
10.09.2010, 03:18 Uhr - Impressum
Erstellt ein Array
Fügt ein oder mehr Elemente an das Ende eines Arrays
Prüft, ob eine Datei oder ein Verzeichnis existiert
Abrunden
Copy and resize part of an image with resampling
Erzeugt ein neues Bild im JPEG-Format, welches aus einer Datei oder von einer URL gelesen wird
Create a new true color image
Ausgabe des Bildes im Browser oder als Datei
Ermittelt die Bild-Breite
Ermittelt die Bild-Höhe
Prüft, ob der gegebene Dateiname ein Verzeichnis ist
Prüft, ob der Dateiname eine reguläre Datei ist
Öffnen eines Verzeichnis-Handles
Liest einen Eintrag aus einem Verzeichnis-Handle
Zurücksetzen des Verzeichnis-Handles
Sortiert ein Array

Pagebauen - Basics - Fotoalbum - Dateien finden

Pagebauen - Basics
Fotoalbum: Dateien finden
Fotoalben ändern sich andauernd...
Das kann nervig sein, jedes mal updaten zu müssen.
Also lassen wir doch einfach PHP die Arbeit erledigen.

Einfaches Prinzip:
In einen Ordner (hier: "pics") klatschen wir unsere Bilder, die sollen dann in der Galerie erscheinen.

Und für das Durchwandern eines Verzeichnisses bau ich die Funktionen
array get_files($path) (wird gleich gebraucht)
array get_dirs($path) (der Vollständigkeit wegen)
in die include.php ein

Und für das Thumbserstellen die abgewandelte Funktion aus dem Tutorial "Thumbnails"
void create_thumb($file, $maxbreite, $maxhöhe) (wird gleich gebraucht)
Projekt "simple"
Angezeigte Datei:
include.php
<?php

$Menue = array();
$Menue['home'] = "Home";
$Menue['pics'] = "Fotos";
$Menue['links'] = "Links";
$Menue['guestbook'] = "Gästebuch";

     /* liefert die Dateien eines Verzeichnisses */

function get_files($path, $opt = "", $pathadd = "") {
     $return = array();
     foreach(get_path_content($path) as $p) if(is_file("$path/$p")) $return[ ] = $p;
     return $return;     
}

     /* liefert die Unterverzeichnisse eines Verzeichnisses */

function get_dirs($path) {
     $return = array();
     foreach(get_path_content($path) as $p) if(is_dir("$path/$p")) $return[ ] = $p;
     return $return;     
}

     /* beide Funktionen benötigen: */

function get_path_content($path) {
     $verzeichnishandle = @opendir("$path");
     rewinddir($verzeichnishandle);
     $files = array();
     while ($file = readdir($verzeichnishandle)) {
          if($file != "." and $file != "..") array_push($files, "$file");
     }
     sort($files);
     return $files;
}


function create_thumb($imagefile, $width, $height) {
     if(file_exists("pics/thumbs/" . $imagefile)) return false;
     $Img = imageCreateFromJPEG("pics/" . $imagefile);
     $oBreite = imageSX($Img);
     $oHöhe = imageSY($Img);
     $nBreite = $width;
     $nHöhe = $nBreite / $oBreite * $oHöhe;
     if($nHöhe > $height) {
          $nHöhe = $height;
          $nBreite = $nHöhe / $oHöhe * $oBreite;
     }
     $nBreite = floor($nBreite);
     $nHöhe = floor($nHöhe);
     $Out = imageCreateTrueColor($nBreite, $nHöhe);
     imageCopyResampled($Out, $Img, 0, 0, 0, 0, $nBreite, $nHöhe, $oBreite, $oHöhe);
     imageJPEG($Out, "pics/thumbs/" . $imagefile);
     return true;     
}


?>
Dann kann man dazu übergehen, in der pics.php mal alle Bilder ausgeben zu lassen:
Angezeigte Datei:
content/pics.php

simuliere http://simple.php-dummies.de/?site=pics
<div class="titel">meine Bildersammlung</div>
<div class="fotoalbum">
<?php
foreach(get_files("pics") as $filename) {
     echo $filename . "<br />";
}
?>

</div>
Gehen wir mal die Thumbnails an...
© 2004-2005 - Impressum