Seite 1 von 1

Zufallsbilder PHP Script - zeige Bild per Zufall an

Verfasst: 10.06.2005, 10:22
von mgutt
Ich habe in kleines Script gebastelt um zufällig Bilder an einer bestimmten Stelle darstellen zu lassen.

Leider füllt sich der Array mit einer Information, die ich nicht rauskriege.

Dadurch geht manchmal die Bildanzeige nicht. (Bild = "X" ;) )

Das ist das Script:

Code: Alles auswählen

<?php

// © 2005 Marc Gutt www.gutt.it
// Code kann frei verändert werden

$pfad = "pics/random/"; // pfad/name des Ordner ab htdocs

$verz = opendir&#40;$pfad&#41;;

while &#40;$file = readdir&#40;$verz&#41;&#41; &#123;
  if&#40;$file != "." && $file != ".." && $file&#91;0&#93;!="."&#41; &#123;
  $bildArray&#91;&#93; = $file;
// füllt dein Array mit den namen der bilder
  &#125;
&#125;
closedir&#40;$verz&#41;;

$anzahl = count&#40;$bildArray&#41;;

$bild = rand&#40;0, $anzahl&#41;;

?>
Das rufe ich auf der Seite damit auf:

Code: Alles auswählen

<?php include&#40;"/www/htdocs/pfad/bild.php"&#41; ?><img src="pics/random/<?= $bildArray&#91;$bild&#93; ?>" width=129 height=271>
Wie gesagt, funktioniert super bis auf ein BildArray. Was müsste ich noch filtern?

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Zufallsbilder PHP Script - zeige Bild per Zufall an

Verfasst: 10.06.2005, 10:28
von robo
Schau halt, was im Array so alles drinsteht: print_r ($bildArray);

cu, Robo :)

Verfasst: 10.06.2005, 10:40
von mgutt
schon gelöst :oops: (hatte parallel mal alle werte schritt für schritt per echo ausgegeben)

der Array war korrekt.. aber die random funktion nicht:

Code: Alles auswählen

<?php 

// © 2005 Marc Gutt services www.gutt.it
// Code kann frei verändert werden 

$pfad = "pics/random/"; // pfad/name des Ordner ab htdocs 

$verz = opendir&#40;$pfad&#41;; 

while &#40;$file = readdir&#40;$verz&#41;&#41; &#123; 
  if&#40;$file != "." && $file != ".." && $file&#91;0&#93;!="."&#41; &#123; 
  $bildArray&#91;&#93; = $file; 
// füllt dein Array mit den namen der bilder 
  &#125; 
&#125; 
closedir&#40;$verz&#41;; 

$anzahl = count&#40;$bildArray&#41;; 

$bild = rand&#40;0, $anzahl-1&#41;; 

?>
die zeile brauchte noch ein "-1", aber ich weiß nicht warum :-?

Code: Alles auswählen

$bild = rand&#40;0, $anzahl-1&#41;;
Vielleicht kann es mir ja jemand erklären ;)

Bei z.B. zwei Bildern hat er 2 Bilder im Array gespeichert. Beim "Count" Befehl war die Zahl auch 2, aber beim "rand" war Wert 0 = Bild 1 und Wert 1 = Bild 2 und Wert 2 hat dann versucht Bild 3 auszugeben, was ja gar nicht da ist.

Zufallsbilder PHP Script - zeige Bild per Zufall an

Verfasst: 10.06.2005, 10:40
von pebosi
mach ne abfrage die dir nur die dateien ins array schreibt welche auch wirklich bilder sin also nur jpg, gif oder png

gruß pebosi

Zufallsbilder PHP Script - zeige Bild per Zufall an

Verfasst: 10.06.2005, 10:48
von mgutt
Danke.. wir waren gleich schnell. Weißt du vielleicht warum?

Zufallsbilder PHP Script - zeige Bild per Zufall an

Verfasst: 10.06.2005, 10:49
von bull
Unter Umständen ist

Code: Alles auswählen

<?php
$pfad = "pics/random/";
$bildArray = scandir&#40;$pfad, 1&#41;;

$anzahl = count&#40;$bildArray&#41;;
$bild = rand&#40;2, $anzahl-1&#41;;
?>
effektiver (keine Stringvergleichsoperationen), vorausgesetzt daß im gegebenen Ordner nur Bilder sind (Code ist ungetestet).

Zufallsbilder PHP Script - zeige Bild per Zufall an

Verfasst: 10.06.2005, 10:55
von mgutt
"scandir" geht aber erst ab PHP 5 ;)

ich habe "nur" PHP 4.3.11 ;)

und bei "rand" kann der minimalwert doch nicht "2" sein oder werden dadurch die ordnerverweise ".." etc. gefiltert?

Zufallsbilder PHP Script - zeige Bild per Zufall an

Verfasst: 10.06.2005, 10:59
von bull
und bei "rand" kann der minimalwert doch nicht "2" sein oder werden dadurch die ordnerverweise ".." etc. gefiltert?
Genau. In Verbindung mit dem Sortierparameter bei scandir.