Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Zufallsbilder PHP Script - zeige Bild per Zufall an

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
mgutt
PostRank 10
PostRank 10
Beiträge: 3206
Registriert: 08.03.2005, 13:13

Beitrag von mgutt » 10.06.2005, 10:22

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?
Zuletzt geändert von mgutt am 30.01.2015, 01:26, insgesamt 1-mal geändert.
Ich kaufe Dein Forum!
Kontaktdaten

Anzeige von ABAKUS

von Anzeige von ABAKUS »

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

Jetzt anfragen: 0511 / 300325-0.


robo
PostRank 8
PostRank 8
Beiträge: 837
Registriert: 23.12.2003, 19:41
Wohnort: Schwangau

Beitrag von robo » 10.06.2005, 10:28

Schau halt, was im Array so alles drinsteht: print_r ($bildArray);

cu, Robo :)

mgutt
PostRank 10
PostRank 10
Beiträge: 3206
Registriert: 08.03.2005, 13:13

Beitrag von mgutt » 10.06.2005, 10:40

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.
Zuletzt geändert von mgutt am 30.01.2015, 01:26, insgesamt 3-mal geändert.
Ich kaufe Dein Forum!
Kontaktdaten

pebosi
PostRank 7
PostRank 7
Beiträge: 495
Registriert: 06.11.2004, 18:38

Beitrag von pebosi » 10.06.2005, 10:40

mach ne abfrage die dir nur die dateien ins array schreibt welche auch wirklich bilder sin also nur jpg, gif oder png

gruß pebosi

mgutt
PostRank 10
PostRank 10
Beiträge: 3206
Registriert: 08.03.2005, 13:13

Beitrag von mgutt » 10.06.2005, 10:48

Danke.. wir waren gleich schnell. Weißt du vielleicht warum?
Ich kaufe Dein Forum!
Kontaktdaten

bull
PostRank 9
PostRank 9
Beiträge: 2166
Registriert: 20.09.2003, 20:57
Wohnort: Vèneto

Beitrag von bull » 10.06.2005, 10:49

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).

mgutt
PostRank 10
PostRank 10
Beiträge: 3206
Registriert: 08.03.2005, 13:13

Beitrag von mgutt » 10.06.2005, 10:55

"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?
Ich kaufe Dein Forum!
Kontaktdaten

bull
PostRank 9
PostRank 9
Beiträge: 2166
Registriert: 20.09.2003, 20:57
Wohnort: Vèneto

Beitrag von bull » 10.06.2005, 10:59

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.

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag