Seite 1 von 1

Zufallsbild wird nicht angezeigt?

Verfasst: 03.03.2006, 20:59
von Japs
Hallo,

folgendes Script soll ein Zufallsbild auf einer Index.html ausgeben.
Das Script selbst ist in eine externe Datei (zufall.php) geschrieben und über Include (<?php include("zufall.php") ?>) eingebunden.

index.html & zufall.php liegen im gleichen Ordner. Die Zufallsbilder (jpg) liegen in einem Ordner Namens "uploads", welcher sich außerhalb dem Ordner befindet, wo index & zufall liegen.

Irgendwie bekomme ich es aber nicht hin?
Hier mal das Script:

Code: Alles auswählen

<?php

//Welcher Ordner wird ausgelesen?
// $ordner = "./bilder/";
$ordner = "/templates/uploads/";

//Welche Bildendungen sollen erkannt werden?
$endungen = array&#40;"gif","jpg","jpeg","png"&#41;;
$anfang = array&#40;"th_"&#41;;

/****** Bilder auslesen ******/
$verzeichnis = dir&#40;$ordner&#41;;
$bilder = array&#40;&#41;;
while&#40;$datei = $verzeichnis->read&#40;&#41;&#41;
   &#123;
   $datei_endung = substr&#40; strrchr&#40;$datei,"."&#41; ,1&#41;;

   //Ist die Datei-Endung in dem Array vorhanden?
   if&#40;in_array&#40;$anfang,$datei_endung,$endungen&#41;&#41;
      &#123;
      $bilder&#91;&#93; = $datei;
      &#125;
   &#125;
$verzeichnis->close&#40;&#41;;

//Zufälliges Bild wählen
srand &#40;&#40;double&#41; microtime&#40;&#41; * 10000000&#41;;
$key = array_rand&#40;$bilder&#41;;

//Bild ausgeben&#58;
echo "<img src=\"".$bilder&#91;$key&#93;."\">";

?> 
Jemand eine Idee, worann es liegen könnte?
Ach ja, die "index.html" ist eine Template-Datei, welche sich in einem Webkatalogscript befindet.

Danke für die Hilfe!

Gruß Dirk

Verfasst:
von

Zufallsbild wird nicht angezeigt?

Verfasst: 04.03.2006, 19:37
von Outman
Hallo,

naja da must Du die zufall.php per Ifram einbauen.

z.b. Baust Du das in die Index Seite ein.

Code: Alles auswählen

<iframe src="Url zu der Zufall.php" width="300" height="200" ></iframe>
mfg. Nico

Verfasst: 04.03.2006, 19:49
von Japs
Das funktioniert auch nicht!

Ich bekomme weder eine Fehlermeldung, noch ein Bild, ich bekoome gar nichts zu sehen.

Kann es vielleicht darann liegen:
Spontan gefällt mir das strrchr nicht, mit dem du die dateiendung rausholst, denn beim vergleichen mit substr fängst du nicht bei 0 an, sondern erst bei 1. wenn du also mit strchr die endung "jpg" holen willst, schneidet substr daraus "pg". könnte der fehler sein, hab aber die definition net auswendig im kopf.
Kenne mich ja mit PHP noch nicht so gut aus :(

Gruß Dirk

Zufallsbild wird nicht angezeigt?

Verfasst: 04.03.2006, 20:18
von Outman
Hallo,

damit geht es.

Code: Alles auswählen

<?php 
// Ordner wo die Bilder sind
$ordner = "./bilder/";
$handle=@opendir &#40;$ordner&#41;; 
while &#40;$file = readdir &#40;$handle&#41;&#41;&#123; 
	if&#40;preg_match&#40;"/&#40;.*&#41;\.png/i", $file&#41; OR preg_match&#40;"/&#40;.*&#41;\.gif/i", $file&#41; OR preg_match&#40;"/&#40;.*&#41;\.jpg/i", $file&#41; OR preg_match&#40;"/&#40;.*&#41;\.jpeg/i", $file&#41;&#41; &#123;
		    $bilder&#91;&#93; = $file; 
	&#125;
&#125;
closedir&#40;$handle&#41;; 
//Zufälliges Bild wählen 
srand &#40;&#40;double&#41; microtime&#40;&#41; * 10000000&#41;; 
$key = array_rand&#40;$bilder&#41;; 
//Bild ausgeben&#58; 
echo "<img src=\"".$ordner.$bilder&#91;$key&#93;."\">";
?>
mfg. Nico