Wechselnde, aus einem Ordner ausgelesene Bilder auf der Website
Hallo zusammen,
ich bin derzeit damit beschäftigt, für meinen Abiturjahrgang eine Internetseite zu erstellen und habe mir gedacht, auf der rechten Seite der Website ständig wechselnde Bilder zu integrieren, die (am besten nach dem Zufallsprinzip) aus einem online verfügbaren Ordner ausgelesen werden, sodass ich, falls neue Bilder hinzukommen, diese einfach in den Ordner hochladen muss. Eine .gif-Animation scheitet also aus, da es sehr viele Bilder sein werden, die rotieren sollen und evtl. auch sändig neue hinzukommen und ich nicht jeden Tag eine neue Animation erstellen möchte. Meine Frage ist jetzt einfach, wie ich da am besten vorgehe bzw. in wie fern mein Vorhaben realisierbar ist?
Danke schonmal im Voraus!
Antwort schreiben
Antwort 1 von rfb vom 04.06.2019, 13:44 Options
es ist machbar - wenn dein Webspace über PHP (oder eine andere serverseitige Scriptsprache) verfügt und du dich damit etwas auskennst, zumindest soweit um die Egebnisse der Google-Suche mit den Stichworten "Zufallsbild PHP" auszuwerten.
Antwort 2 von mr.checker vom 04.06.2019, 14:54 Options
Ein Beispiel für PHP:
Wenn du z.B. 20 verschiedene Bilder hast, die "Bild1.jpeg" - "Bild20.jpeg" heißen, kannst du das z.B. so machen:
<img src="Bild<?php echo rand(1,20); ?>.jpeg" alt="Bild" />
Viele Grüße,
Thomas
Antwort 3 von Flupo vom 04.06.2019, 14:56 Options
Eine einfache Lösung wäre zum Beispiel, die Bilder mit Ziffern zu benennen. Mit php lässt sich eine Zufallszahl in einem bestimmten Bereich generieren, die dann in einen String umgewandelt als Variable für den Dateinamen verwendet werden kann.
Voraussetzung (wie rfb schon schrieb) php-fähiger Webspace.
Gruß Flupo
Antwort 4 von rfb vom 04.06.2019, 15:37 Options
@mr.checker & Flupo:
PHP kann Verzeichnisse auslesen - wenn S.Finke darüber verfügt, ist es völlig egal wie die Bilder heißen und wieviele es sind.
Wenn die Namen und die Anzahl der Dateien bekannt wären würde ja auch eine simple JavaScript-Variante reichen.
Antwort 5 von mr.checker vom 04.06.2019, 16:07 Options
Jo, das stimmt, ich kenne jedoch keine Zufallsfunktion für JS ;) Man hat ja sonst nichts zu tun...
Grüße,
Thomas
Antwort 7 von rfb vom 04.06.2019, 23:35 Options
Zitat:
simple JavaScript-Variante
dies im head:
<script type="text/javascript">
function bildperzufallladen () {
var bilder=["bild.jpg", "noch_ein_bild.jpg", "anderes_bild.jpg", "letztes_bild.jpg", "standard.jpg"];
var zufall=Math.floor(Math.random() * bilder.length);
var wohin = document.getElementById("dasBild");
if (wohin) wohin.src = bilder[zufall];
}
window.onload=function () {
bildperzufallladen ();
}
</script>
und das Bild im body:
<img src="standard.jpg" alt="ein zufälliges Bild" id="dasBild">
Aber - wie angedeutet - hierfür müsste für jedes neue Bild der Quellcode erweitert werden, da JavaScript keinen Zugriff auf Verzeichnisse hat.
Antwort 8 von S.Finke vom 05.06.2019, 13:16 Options
Hallo zusammen,
erstmal vielen Dank für eure schnellen Antworten. Habs mitlerweile hinbekommen :-) :
<?php
function getFiles($dir)
{
static $files;
$allowed_file_extensions = array();
$allowed_file_extensions[] = 'gif';
$allowed_file_extensions[] = 'bmp';
$allowed_file_extensions[] = 'jpg';
$allowed_file_extensions[] = 'jpeg';
$allowed_file_extensions[] = 'png';
$len = strlen($dir);
if($dir{$len-1} == '/')
$dir = substr($dir, 0, $len-1);
if(!is_dir($dir))
return false;
$open = @opendir($dir);
if(!$open)
return false;
while($file = readdir($open)) {
if($file == "." || $file == "..")
continue;
if(is_dir($dir.'/'.$file)) {
getFiles($dir.'/'.$file);
}
$e = explode('.', $file);
$ext = $e[ count($e)-1 ];
if( is_file($dir.'/'.$file) && in_array($ext, $allowed_file_extensions) ) {
$files[] = $dir.'/'.$file;
}
}
return $files;
}
$files = getFiles('picz/slideshow');
$rand = mt_rand(0, count($files)-1);
echo '<a href="galerie.php"><img src="'. $files[ $rand ] .' " width="189" height="132" align="center" /></a>';
?>
Nun habe ich allerdings erneut eine Frage. Ich möchte nun aus einem auf der Website gespeicherten Ordner sämtliche Bilder auslesen und zunächst auf einer Seite in verkleinerter Form erscheinen lassen, d.h. ich möchte eine Galerie haben, die sich selbst mit Bildern füllt ;-) . Ein Klick auf das verkleinerte Bild soll ein Fenster öffnen, in welchem selbiges in Originalgröße zu sehen ist. Wäre für Antworten sehr dankbar...
Gruß
S. Finke
Antwort 9 von Flupo vom 05.06.2019, 13:23 Options
Wenn's nicht unbedingt dynamisch sein muss, kann ich
JoJoThumb wärmstens empfehlen.
Man kann das Design der Galerie sehr flexibel gestalten und wenn man einmal sein Profil erstellt hat, ist nachträgliches Hinzufügen weiterer Bilder eine Sache von Sekunden. Das Ergebnis muss dann nur neu hochgeladen werden (bzw. nur die neuen oder geänderten Dateien).
Gruß Flupo