Bildergalerie mit PHP

Einfache PHP Bildergalerie ohne Datenbank

Hier habe ich eine PHP Bildergalerie die ohne Datenbank funktioniert, zur Verfügung gestellt. Einen Eindruck wie das Ganze ausschaut kann man sich bei meinen Bildergalerien machen. Eine Galerie, in der die Beschreibung eingesetzt wurde ist zu finden unter: Bilder/Urlaub/Türkei.

Das Script kann als eigenständige Seite aufgerufen oder includet werden.
Die Anzahl der Vorschaubilder pro Reihe und Spalte kann verändert werden. In der Vorschau und der Grossansicht gibt es die Möglichkeit zum Blättern. In der aktuellen Version kann für jedes Bild eine individuelle Beschreibung erstellt werden, welche nur in der Grossansicht angezeigt wird.

Wie funktioniert die Bildergalerie?

Das wars eigentlich schon. Bei Fragen oder Problemen nicht zögern, fragt mich. Ich helfe gerne weiter.

Bildergröße einfach ordnerweise ändern

Mit dem kostenlosen IrfanView lassen sich die BIlder ganz einfach ordnerweise per "Batchkonvertierung" in der Größe verändern und auch umbenennen.
(IrfanView - Datei/Batchkonvertierung-Umbenennung)

Download PHP Bildergalerie ohne Datenbank

Neu: Schatten kann abgeschaltet werden, Grossansicht kann im Neuen oder im Gleichen Fenster geöffnet werden (Stand:30.01.2006).

» Download Bildergalerie (30.01.2006)

Es würde mich freuen, wenn ihr mir Websites zeigt bei der meine Galerie im Einsatz ist. Ich nehme diese dann gerne in mein Linkverzeichnis auf.
Link zur Galerie
PS: Auf Anfrage gibt es die Bildergalerie auch ohne Copyright.

Ansicht des Quellcodes

Unterhalb des Menüs ist zu sehen, wie das Ganze in PHP ausschaut. Das geht sicherlich auch einfacher, aber für den Anfang denke ich ganz ok ;-)
 
Freue mich über konstruktive Kritik oder sonstige Kommentare im Gästebuch oder per Kontaktformular.

 

<?
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////                                         ////////////////////////////////////
/////////////////////////////////            PHP Bildergalerie              ////////////////////////////////////
/////////////////////////////////                                          ////////////////////////////////////
/////////////////////////////////     Copyright durch Tommy Kiesewetter   ////////////////////////////////////
/////////////////////////////////                 2005                    ////////////////////////////////////
/////////////////////////////////                                         ////////////////////////////////////
/////////////////////////////////       URL:  http://www.t-kiesewetter.de ////////////////////////////////////
/////////////////////////////////        Email: tommy@t-kiesewetter.de    ////////////////////////////////////
/////////////////////////////////                                         ////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Version vom 30.01.2006 20:37

//----------------------SETUP-------------------------------------------------

//Wird die Seite includet oder als eingenständige Seite aufgerufen? includet=0 eigenständige Seite=1
$anzeige=1;

//Welchen Titel soll die Seite haben
$titel="Meine erste PHP Bildergalerie";

//Anzahl der Spalten und Zeilen auf einer Seite
$spalten=2;
$zeilen=2;

//Ordername für die großen und kleiner Bilder, relativ von dieser Datei
$dir_gross="gross/";     // mit / am Ende
$dir_klein="klein";

//Ordnername für die Schatten- und Pfeilbilder
$dir_misc="misc";

//Soll die Bildbeschreibung in der Grossansicht angezeigt werden? nein=0 ja=1
$bildname=1;

//Pfad zur datei mit den Titeln z.B. titel.txt
$titelfile="titel.txt";

//Sollen die Bilder einen Schatten haben? nein=0 ja=1
$schatten=1;

//Sollen sich die großen Bilden in einem neuen Fenster öffnen? nein=0 ja=1
$nfenster=0;

//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
?>
<?
if ($anzeige == 1){
echo 
"
<html>
<head>
<title>
$titel</title>
<meta http-equiv=\"content-type\" content=\"text/html\; charset=iso-8859-1\">
<meta http-equiv=\"content-type\" content=\"text/html\; charset=windows-1252\">
<meta http-equiv=\"content-language\" content=\"de\">
<meta name=\"author\" content=\"t-kiesewetter.de / Tommy Kiesewetter\">
<meta name=\"keywords\" content=\"PHP Bildergalerie, ohne mysql, ohne Datenbank, einfache Bildergalerie\">
<meta name=\"Description\" content=\"Dieses Script erzeugt mit PHP eine Bildergalerie und benötigt keine Datenbank.\">
<style type=\"text/css\">
<!--
img {border:0};
-->
</style>
</head>
<body>"
;
}
?>
<h1><? echo $titel?></h1>
<?
//einlesen der vorschaubilder
$handle=opendir($dir_klein);
$bild_k=array();
$bildnr=1;
while (
$file readdir ($handle)) {
  if (
$file != "." && $file != "..") {
  
$bild_k[$bildnr] = "$file";
  
$bildnr++;
  }
}
//einlesen der grossansicht
$handle=opendir($dir_gross);
$bild_g=array();
$bildnr=1;
while (
$file readdir ($handle)) {
  if (
$file != "." && $file != "..") {
  
$bild_g[$bildnr] = "$file";
  
$bildnr++;
  }
}
//einlesen der Titeldatei
$bildtext=array();
$bildnr=1;
if(
$bildname == 1){
  foreach (
file($titelfile) as $zeile) {
    
$bildtext[$bildnr]=$zeile;
    
$bildnr++;
  }
}
//was soll angezeigt werden
//übersicht?
if(isset($_GET['start']) AND isset($bild_k[$_GET['start']])) {
        
zeigevorschau($_GET['start']);
}
else
{    
//oder großbild?
    
if(isset($_GET['page']) AND isset($bild_g[$_GET['page']])) {
        
zeigebild($_GET['page']);
    }
    
//wenn nichts gewählt ist zeige übersicht
    
else
    {
        
zeigevorschau(1);
    }
}
function 
get_eog() {
    
$return "";
    
$eof = array(112,104,112,32,98,105,108,100,101,114,103,97,108,101,114,105,101,32,
    
60,98,114,62,112,111,119,101,114,101,100,32,98,121,32,60,97,32,104,114,
    
101,102,61,34,104,116,116,112,58,47,47,119,119,119,46,116,45,107,105,101,115,101,119,101,116,
    
116,101,114,46,100,101,34,32,116,105,116,108,101,61,34,112,104,112,32,115,99,114,105,112,116,
    
101,32,97,117,102,32,116,45,107,105,101,115,101,119,101,116,116,101,114,46,100,101,34,62,116,
    
45,107,105,101,115,101,119,101,116,116,101,114,46,100,101,60,47,97,62);
    for (
$i=0$i<count($eof); $i++) {
        
$return .= chr($eof[$i]);
    }
    
$out"<p style=\"font-size:smaller;text-align:center\">".$return."</p>";
    return 
$out;
}
//function zm anzeigen der vorschaubilder
function zeigevorschau($bildnr){

    
//globale variablen bekanntmachen
    
global $zeilen;
    global 
$spalten;
    global 
$bild_k;
    global 
$bild_g;
    global 
$dir_klein;
    global 
$dir_gross;
    global 
$dir_misc;
    global 
$schatten;
    global 
$nfenster;

    
//bildanzahl und bilder pro seite berechnen
    
$anzahl_bilder=count($bild_g);
    
$bilder_p_seite=$zeilen $spalten;

    
//navigation nur bei seitenanzahl größer 1 anzeigen
    
if ($anzahl_bilder $bilder_p_seite){
        
//links berechnen zum seitenweisen blättern
        
$anzahl_seiten=ceil($anzahl_bilder $bilder_p_seite);

        echo 
"<center><span>Seite </span>";

        for (
$i=1;$i <= $anzahl_seiten;$i++){
            
$erstes_bild=$i $bilder_p_seite - ($bilder_p_seite-1);
            
$akt_seite=ceil($bildnr $bilder_p_seite);

            
//aktuelle seitenzahl anders formatieren
            
if ($akt_seite == $i){
                echo 
" <span style=\"color: red; text-decoration: underline;\">$i</span> ";
            }
            else
            {
                echo 
" <a href=\"$PHP_SELF?start=$erstes_bild\" title=\"zur Seite $i\">$i</a> ";
            }
        }
    }
    
//tabelle schreiben
    
echo "<br />&nbsp;<br /><table cellpadding=\"10px\" cellspacing=\"0px\" >";
        
//tabellenzeilen schreiben
        
for ($a 0;$a $zeilen$a++){
            echo 
"<tr>";
            
//tabellenspalten schreiben und vorschaubild einfügen
            
for ($b 0;$b $spalten$b++){
                if (
$bildnr <= $anzahl_bilder) {
                    if (
$schatten == 1){
                        echo 
"
                         <td>
                          <table cellspacing=\"0px\" cellpadding=\"0px\">
                           <tr>
                            <td style=\"border: 1px solid #808080; padding: 0px; font-size: 1px;\">"
;
                           if (
$nfenster == 0){
                                echo 
"<a href=\"$PHP_SELF?page=$bildnr\" title=\"$bildtext[$bildnr]\">
                                <img src=\"
$dir_klein/$bild_k[$bildnr]\" alt=\"$bild_k[$bildnr]\" /></a>";
                           }
                           else
                           {
                                echo 
"<a href=\"$dir_gross$bild_g[$bildnr]\" title=\"$bildtext[$bildnr]\" target=\"_blank\">
                                <img src=\"
$dir_klein/$bild_k[$bildnr]\" alt=\"$bild_k[$bildnr]\" /></a>";
                           }
                        echo
"
                            </td>
                            <td style=\"background: url('
$dir_misc/fv_r.gif') repeat-y top left; vertical-align: top; padding: 
                            0px; font-size: 1px;\">
                             <img src=\"
$dir_misc/4x4.gif\"  alt=\"clearpixel\" />
                            </td>
                           </tr>
                           <tr>
                            <td style=\"background: url('
$dir_misc/fv_u.gif') repeat-x top left; text-align: left; 
                            vertical-align: top; padding: 0px; font-size: 1px;\">
                             <img src=\"
$dir_misc/4x4.gif\"  alt=\"clearpixel\" />
                            </td>
                            <td style=\"background: url('
$dir_misc/fv_ru.gif') no-repeat top left;\">
                             &nbsp;
                            </td>
                           </tr>
                          </table>
                         </td>"
;
                    }
                    else
                    {
                        echo 
"<td>";
                           if (
$nfenster == 0){
                                echo 
"<a href=\"$PHP_SELF?page=$bildnr\" title=\"$bildtext[$bildnr]\">
                                <img src=\"
$dir_klein/$bild_k[$bildnr]\" alt=\"$bild_k[$bildnr]\" /></a>";
                           }
                           else
                           {
                                echo 
"<a href=\"$dir_gross$bild_g[$bildnr]\" title=\"$bildtext[$bildnr]\" target=\"_blank\">
                                <img src=\"
$dir_klein/$bild_k[$bildnr]\" alt=\"$bild_k[$bildnr]\" /></a>";
                           }
                            echo
"</td>";

                    }
                    
$bildnr++;
                }
                else
                {
                    echo 
"<td>&nbsp;</td>";
                    
$bildnr++;
                }
            }
            echo 
"</tr>";
          }
      echo 
"</table></center>";
      echo 
get_eog();
}

//function zum anzeigen der einzelnen bilder im großformat
function zeigebild($bildnr) {

    
//globale variablen bekanntmachen
    
global $bild_g;
    global 
$dir_gross;
    global 
$zeilen;
    global 
$spalten;
    global 
$dir_misc;
    global 
$bildname;
    global 
$bildtext;
    global 
$schatten;

    
//bildanzahl und bilder pro seite berechnen
    
$anzahl_bilder=count($bild_g);
    
$bilder_p_seite=$zeilen $spalten;

    
//links berechnen für vor und zurück und zur übersicht
    
$start=ceil($bildnr $bilder_p_seite)* $bilder_p_seite - ($bilder_p_seite-1);
    
$vor=$bildnr+1;
    
$zurueck=$bildnr-1;

    
//menue wenn erstes bild
    
if ($bildnr == 1){
        echo 
"
        <center>
        <a href=\"
$PHP_SELF?start=$start\" title=\"zur Übersicht\">
        <img src=\"
$dir_misc/Back.gif\"  alt=\"zur Übersicht\" /></a>
        <a href=\"
$PHP_SELF?page=$vor\" title=\"vor\"><img src=\"$dir_misc/Next.gif\"  alt=\"vor\" /></a>";
    }
    else
    {
        
//menue wenn letztes bild
        
if ($bildnr == ($anzahl_bilder)){
            echo 
"
            <center>
            <a href=\"
$PHP_SELF?page=$zurueck\" title=\"zurück\"><img src=\"$dir_misc/Prev.gif\" alt=\"zurück\" /></a>
            <a href=\"
$PHP_SELF?start=$start\" title=\"zur Übersicht\">
            <img src=\"
$dir_misc/Back.gif\"  alt=\"zur Übersicht\" /></a>";
        }else {
            
//menue sonstige bilder
            
echo "
            <center>
            <a href=\"
$PHP_SELF?page=$zurueck\" title=\"zurück\"><img src=\"$dir_misc/Prev.gif\" alt=\"zurück\" /></a>
            <a href=\"
$PHP_SELF?start=$start\" title=\"zur Übersicht\">
            <img src=\"
$dir_misc/Back.gif\"  alt=\"zur Übersicht\" /></a>
            <a href=\"
$PHP_SELF?page=$vor\" title=\"vor\"><img src=\"$dir_misc/Next.gif\"  alt=\"vor\" /></a>";
        }
    }
    
//bild gross
    
if ($schatten == 1) {
        echo 
"
         <table cellspacing=0 cellpadding=0>
          <tr>
           <td style=\"border: 1px solid #808080; text-align: center; 
           vertical-align: middle; padding: 0px; font-size: 1px;\">
            <img src=\"
$dir_gross/$bild_g[$bildnr]\" alt=\"$bild_g[$bildnr]\" />
           </td>
           <td style=\"background: url('
$dir_misc/fv_r.gif') repeat-y top left;
            vertical-align: top; padding: 0px; font-size: 1px;\">
            <img src=\"
$dir_misc/4x4.gif\"  alt=\"clearpixel\" />
           </td>
          </tr>
          <tr>
           <td style=\"background: url('
$dir_misc/fv_u.gif') repeat-x top left; 
           text-align: left; vertical-align: top; padding: 0px; font-size: 1px;\">
            <img src=\"
$dir_misc/4x4.gif\"  alt=\"clearpixel\" />
           </td>
           <td style=\"background: url('
$dir_misc/fv_ru.gif') no-repeat top left;\">
            &nbsp;
           </td>
          </tr>
         </table>"
;
    }
    else
    {
        echo 
"<br /><img src=\"$dir_gross/$bild_g[$bildnr]\" alt=\"$bildtext[$bildnr]\" />";
    }
    
//wenn ausgewählt, bildname anzeigen
    
if ($bildname == 1) {
        echo 
"<p>$bildtext[$bildnr]</p>";
    }
    echo 
"</center>";
    echo 
get_eog();
}
if (
$anzeige == 1){
echo 
"
</body>
</html>"
;
}
?>

http://www.t-kiesewetter.de © 2003-2015 Tommy Kiesewetter - Alle Rechte vorbehalten
hosted by kiesewetter.NET // Webdesign, Hosting & Service in Straubing