Hello Kati,
<?php
#? kein Pfad angegeben?
$path="";
$erlaubte_endungen = array('jpg','jpeg','gif','png'); //Erlaubte Endungen
//Anzahl IMGDateien im Ordner $path
$index=0;
$files=array();
if( $handle = opendir($path))
{
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..") //Auschliessen von Überordner und eigenem
{
$fullpath = rtrim($path,'/').'/'.$file; //Ganzer Pfad der Datei
$path_parts = pathinfo($file); ## Du willst doch nur die Extension
if(in_array(strtolower($path_parts["extension"]), $erlaubte_endungen))
Selektion: Nur bestimmte Dateieformate
http://de2.php.net/manual/de/function.in-array.php
{
$files[]=$fullpath; //Array mit allen Dateien im Ordner
}
}
}
closedir($handle); ## man kann nur ein Verzeichnis schließen, das
## erfolgreich geöffnet wurde
}
//Schliessen des Ordners
//Zufallszahl generieren
$zufall=rand(0, $count($files));
$file=$files[$zufall]; //Zufallsdateiif(!file_exist($file)) //Wenn die Datei noch nicht existiert
{
##macht etwas
}
else
{
//Ausgabe der Datei
echo $file;
}
?>
Du hast jetzt aber immer noch Links und Directories mit in Deiner Auswahl.
Die dürfen ja auch "erlaubte Endungen" im Namen haben.
Mit is_file() könntest Du die Auswahl auf Dateien beschränken.
Hatte ich Dir aber schon einmal geschreiben.
Warum nun $fullpath = rtrim($path,'/').'/'.$file; ?
Wenn die Variable $path keinen abschließenden Slash enthält, würde er nach Deiner Methode im Fullpath fehlen. Hat sie einen und man hängt prophilaktisch aber noch einen an, kann es später Probleme bei Umleitungen und Rewrite geben, solltest Du das mal einsetzen wollen.
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)
