Link soll zu einem von 30 zufälligen Ziellinks führen

Hi
Folgendes:
Ich habe 30 verschiedene html Seiten mit einem Bild als Inhalt. Wenn man nun auf den Link „nächstes Foto“ klickt, soll eine der restlichen 29 Bilderseiten per zufall geöffnet werden, sodass die Bilder nicht immer in selber Reihenfolge angesehen werden müssen. Gibt es die Möglichkeit eine Art „linkpool“ zu erstellen, aus dem dann eine zufällige im Ordner gespeicherte Zielseite geöffnet wird wenn man den Link anklickt?

Oder was noch praktischer wäre: Der Link läd die aktuelle Seite einfach erneut und beim erneuten Laden der html Datei wird eine von 30 zufälligen Grafiken angezeigt, sodass gar nicht erst verschiedene html Datein erstellt werden müssen.

Ich hoffe ich konnte meine Frage zu später Stunde noch verständlich schildern, würde mich über hilfreiche Antwort sehr freuen!

MfG
Farbenfroh

Hallo,

also mit js, ein Array alle Bilder rein und die dann zufallig ausgeben, dann nich eine array für die Angezeigten das nicht eins doppelt kommt, ist halt blöd wenn doch js deaktiviert ist.

PHP ist da immer besser, aber das gleiche prinzip.

Cheffchen

das kann man auch mit php verwirklichen:
in etwa so:

[PHP]$zufall = rand(1,10);
$bilder = array(„/pictures/1.jpg“,
„/pictures/3.jpg“,
„/pictures/4.jpg“,
„/pictures/5.jpg“,
„/pictures/6.jpg“,
„/pictures/7.jpg“,
„/pictures/8.jpg“,
„/pictures/9.jpg“,
„/pictures/10.jpg“)

echo „zufallsbild“;

[/PHP]so in der art sollte es funktionieren.
natürlich noch die etsprechenden pfade zu den bildern ändern. wenn du die bilder alle im selben verzeichnis hast und mit bild1 bis bild30 durchnummerierst, kann man es noch weiter vereinfachen.

Just for kicks:

[php]<?php

/**

  • Example:

  • $path = ‚/a/directory‘;

  • $whitelist = array(‚txt‘); // List of file extensions to filter

  • $iterator = new FileExtensionFilterIterator(

  •             new RecursiveIteratorIterator(
    
  •                 new RecursiveDirectoryIterator($path)),
    
  •             $whitelist);
    
  • foreach ($iterator as $file) {

  • echo $file, "<br />";
    
  • }
    */
    class FileExtensionFilterIterator extends FilterIterator
    {
    protected $whitelist;

    public function __construct(Iterator $iterator, array $whitelist)
    {
    parent::__construct($iterator);
    $this->whitelist = $whitelist;
    }

    public function accept()
    {
    $fileInfo = parent::current();

     // Allow only files
     if (!$fileInfo->isFile()) {
         return false;
     }
    
     // Only allow file extensions from $whitelist
     $pi = pathinfo($fileInfo->getFilename());
     if (!in_array(strtolower($pi['extension']), $this->whitelist)) {
         return false;
     }
    
     return true;
    

    }
    }

$path = ‚./images‘;
$whitelist = array(‚jpg‘, ‚png‘); // List of file extensions to filter

$iterator = new FileExtensionFilterIterator(
new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($path)),
$whitelist);

$files = iterator_to_array($iterator);

/* @var $randomFile SplFileInfo */
$randomFile = $files[array_rand($files)];

echo ‚

‘ . $randomFile->getFilename()
. ’ (’ . round($randomFile->getSize() / 1024, 2) . ’ KiB)’
. ‚

‘;
echo ‚‘;[/php]

Hey Jungs, vielen Dank für die schnellen und hilfreichen Antworten!