Alexander Brock: Fotoalbum mit 20 Zeilen Quelltext?

Beitrag lesen

Hallo,

Ich habe mal ein extrem einfaches PHP-Script zu diesem Zweck geschrieben:

Ist zwar nicht gerade einfach (für mich!),

Mit einfach war gemeint, dass das Script überhaupt keine
"Features" hat, es kann nur die Grundfunktion.

Ich kommentiere es mal:

<?php
ob_start("ob_gzhandler");

Die Ausgabe wird komprimiert, bevor sie an den Client geschickt wird.

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Lustiges</title>
<link href="./bilder.css.php" rel="stylesheet" type="text/css" />
</head>

<body>
<div>

<?php

Die Variablen

$bilder = array();

der Ordner mit den Bildern:

$directory = "bilder";

if (!isset($_GET["pos"])) {
 $position = 0;
}

wenn keine Bildnummer angegeben ist, wird diese auf Null gesetzt.

else {
 $position = $_GET["pos"];
}

andernfalls die Bildnummer aus der URL übernommen.

$vorposition = $position-1;
$nachposition = $position+1;

selbsterklärend ?

Auslesen des Bilder-Verzeichnisses

$verz = opendir($directory);

der Ordner bilder wird zum lesen geöffnet

while ($file = readdir($verz)) {
 if ($file != '.' && $file != '..') {
  array_push($bilder,$file);
 }
}

alle Dateien (!) im Unter-Ordner bilder werden in das Array $bilder geschrieben.

closedir($verz);

der Ordner bilder wird wieder geschlossen.

if (isset($bilder[$position])) {

wenn es das Element des Arrays $bilder mit der übergebenen Bildnummer gibt

if (isset($bilder[$vorposition])) {
 # und es ein vorhergehendes Bild gibt
  echo '<a href="'.$_SERVER["PHP_SELF"].'?pos='.($position-1).'">Vorheriges Bild</a>
  ';
 # wird ein Link auf das vorhergehende Bild ausgegeben
 }
 if (isset($bilder[$nachposition])) {
 # wenn es ein weiteres Bild gibt
  echo '<a href="'.$_SERVER["PHP_SELF"].'?pos='.($position+1).'">N&auml;chstes Bild</a><br />
  ';
 # wird ein Link auf dieses Bild ausgegeben.
 }
 else {
  echo '<br />';
 }
 # andernfalls ein Zeilenumbruch
 echo '<img alt="'.$bilder[$position].'" src="./'.$directory.'/'.$bilder[$position].'" />
 ';

wenn es das Element des arrays $bilder mit der übergebenen

Bildnummer gibt wird dieses Bild angezeigt.

}

else {
 echo '<a href="'.$_SERVER["PHP_SELF"].'">Zur Startseite</a>';
}

Wenn alles falsch ist, gibts einen Link auf die Startseite.

?>

</div>
</body>
</html>

Ist das verständlich?
Tipp:
Wenn in dem Ordner noch andere Dateien sind, oder du die Reihenfolge
verändern willst, kannst du alles zwischen
"# Auslesen des Bilder-Verzeichnisses" und
"# der Ordner bilder wird wieder geschlossen."

weglassen und den Array $bilder selbst füllen
(so: $bilder = array("bild1.jpg","bild2.gif");).

Die Variable $directory (gerade eingeführt) gibt den Ordner
mit den Bildern an.

aber es funktioniert

Sonst hätte ich es nicht gepostet,
und damit ich es verwenden kann,
muss es ja funktionieren.

und ich kann es auch meinen (Gestaltungs-)wünschen anpassen.

Das sollte allerdings einfach sein.

Vielen Dank für diese schöne Lösung!

Bitte, gern geschehen. Ich hatte es halt herumliegen
und dachte mir, vielleicht ist es ja nützlich.

Gruß
Alexander Brock

--
P.S.: ich werde dieses Script noch ein wenig weiterentwickeln.