hyperlink +1

Jamonit

Mitglied
Hallo,

auch in Gefahr hin, dass ich die Suchfunktion nicht ausreichend genutzt habe, stelle ich mal meine Frage:

Ich habe ca. 180 Bilddateien in einem Ordner. Dazu habe ich eine einfache HTML-Datei, die im oberen Teil, den Dateinamen anzeigen soll, darunter das Bild und im unteren Teil der Seite zwei Links, die auf das vordere und das kommende Bild verweisen sollen.

Nun würde ich es gerne so realisieren, dass ich nicht 180 einzelne HTML Dateien erzeugen muss. Ich habe mir gedacht einfach immer um einen hochzuzählen (klassisches "n+1", bzw. "n-1"). So dass quasi der Bildname immer um einen erweitert wird (pic001.jpg --> pic002.jpg,..) Leider habe ich so gut wie keine Ahnung von php, so dass mir der Ansatz fehlt. Vielleicht hat ja jemand von euch Lust und/oder Langweile, mir zu helfen.

Vielen Dank im Vorraus,
Jamonit
 
PHP:
<?php
$image_dir = "./pics/";
$count = ( isset($_GET['pic']) ? sprintf('%03d', $_GET['pic']) : '000' );
$link = '<a href="./test.php?pic=%d">%s</a>';

$prev = ( file_exists($image_dir.'pic'. sprintf('%03d', $count - 1) .'.jpg') && $count > 0 ? sprintf($link, $count - 1, 'Previous') : 'Previous' );
$next = ( file_exists($image_dir.'pic'. sprintf('%03d', $count + 1) .'.jpg') ? sprintf($link, $count + 1, 'Next') : 'Next' );
?>
<html>
<head>
<title>Gallerie</title>
</head>
<body>
<p align="center">&nbsp;</p>
<p align="center">Rome/Italy october 2007</p>
<p align="center"><img src="<?php echo $image_dir.'pic'.$count; ?>.jpg" width="850" height="565" /></p>
<p align="center">&nbsp;</p>
<div align="center">
<table width="200" border="0">
<tr>
<td><?php echo $prev; ?></td>
<td><div align="right"><?php echo $next; ?></div></td>
</tr>
</table>
</div>
<p align="center">&nbsp;</p>
</body>
</html>

Ungetestet...

Musst nur noch $image_dir anpassen, genau wie das Format deiner Bildnamen...
Und ggf. den Linknamen.
 
Zuletzt bearbeitet:
Danke für die schnelle Antwort! Ich werd es gleich mal testen.

so sieht meine standart-anzeige-html aus.

<body>
<p align="center">&nbsp;</p>
<p align="center">Rome/Italy october 2007</p>
<p align="center"><img src="/rome/small/001.jpg" width="850" height="565" /></p>
<p align="center">&nbsp;</p>
<div align="center">
<table width="200" border="0">
<tr>
<td><a href="rome.php"><< BACK</a></td>
<td><div align="right"><a href="pic002.php">NEXT >></a></div></td>
</tr>
</table>
</div>
<p align="center">&nbsp;</p>
</body>
</html>


Grüße
Jamonit
 
Zuletzt bearbeitet:
Mein Fehler.

PHP:
$count = ( isset($_GET['pic'] ? (int)$_GET['pic'] : '000' );

Muss so aussehen:

PHP:
$count = ( isset($_GET['pic']) ? (int)$_GET['pic'] : '000' );

Hatte eine Klammer vergessen.
 
Wenn ich es richtig verstanden habe, ist 'pic' ist dann der name meiner bildateien ohne suffix? Kannst du vielleicht noch in ein-zwei sätzen schreiben, wie genau ich den code implementiere, bzw. wohin ich ihn einfüge? Vielen Dank.
 
Siehe oben

Probier es mal so.

Die Datei muss in diesem Fall als gallery.php abgespeichert werden.
Falls sie anders heißen soll, musst du $link ändern.
 
Zuletzt bearbeitet:
okay, das habe ich jetzt soweit verstanden. allerdings zeigt er mir bei aufruf der datei folgenden fehler an:

"Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /srv/www/vhosts/xx/httpdocs/rome/ruhm.php on line 6

Meine Bilddateien heißten pic001.jpg; pic002.jpg, etc. liegt vielleicht daran der fehler?
 
War noch ein Fehler meinerseits.

Siehe oben.

Oben in deinem Ausschnitt heißt das Bild aber 001.jpg?

Habe es jetzt auf picXXX.jpg geändert.
 
Zuletzt bearbeitet:
Okay, nun scheint es zu klappen. Das Bild wird angezeigt.

Mein Hauptanliegen war/ist es jedoch, dass "Prev" und "next" als Link angezeigt und dementsprechend auf das vorherige und das kommende Bild verweisen sollen.

Vorerst jedoch vielen Dank für das bereits vorhandene Script!

Grüße
Jamonit
 
Zurück