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!