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?
- » Bilder müssen in zwei Größen vorliegen. Vorschaugrösse und Detailgrösse
- » Die Vorschaubilder in einen Ordner
- » Die Detailbilder in einen Ordner
- » Auf den Webspace laden
- » Pfade im Script anpassen
- » In der "titel.txt" kann eine Bildbeschreibung gemacht werden. Pro Bild eine Zeile. Bild 1 = Zeile 1,
Bild 2 = Zeile 2 usw. (wird nur in der Grossansicht angezeigt)
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 /> <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;\">
</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> </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;\">
</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>";
}
?>