Christian Seiler: Zufallslinkliste mit PHP oder SSI

Beitrag lesen

Hallo Stefan,

wie kann ich so etwas wie auf der SELFHTML Downloadseite realisieren,
siehe http://aktuell.de.selfhtml.org/extras/download.shtml#a1, aller-
dings habe ich nur PHP und SSI zur Verfügung. Kann mir da jemand
einen Tipp geben, wie ich dieses Ziel erreiche?

Damit sollte es klappen:

<?php

// lese Dateien aus
$dateien = file ('dateiliste.txt');
$anz_dateien = count ($dateien);

// anzahl an gewollten Dateien
$anz_gewollt = 5;

// zu wenig dateien verfügbar?
if ($anz_gewollt >= $anz_dateien) {
  // einfach alle dateien nehmen
  for ($i = 0; $i < $anz_dateien; $i++) {
    // gut - "zufallszahlen" passt hier nicht
    $zufallszahlen[] = $i;
  }
} else {
  $zufallszahlen = array ();

// solange wir noch nicht alle zufallszahlen haben
  while (count ($zufallszahlen) < $anz_gewollt) {
    // schleife zum erzeugen einer eindeutigen zufallszahl
    do {
      $zahl = mt_rand (0, $anz_dateien-1);
    } while (in_array ($zahl, $zufallszahlen));

// eindeutige zufallszahl hinzufügen
    $zufallszahlen[] = $zahl;
  }
}

// Ausgabe
foreach ($zufallszahlen as $zahl) {
  // trim entfernt das Neuezeile-Zeichen am Ende des Dateinamens,
  // das mit file() reinkommt
  echo trim ($dateien[$zahl]).'<br>';
}

?>

Die Datei dateiliste.txt sollte am Ende genau _einen_ Umbruch, aber _keine_ Leerzeile enthalten.

Statt Dateien kannst Du natürlich auch URLs oder sonstwas verwenden, das ist nur ein Beispiel.

Ob das auch mit SSI geht, weiß ich allerdings nicht.

Viele Grüße,
Christian

--
Ich bin ein Bandbreitenverschwender. Meine Signatur tut mir leid. Ehrlich!