PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Zufällige Anzeige von Bild + Text (http://www.selfphp.de/forum/showthread.php?t=14632)

buero_b 21.09.2006 14:49:31

Zufällige Anzeige von Bild + Text
 
Guten Tag,

ich habe folgendes programmiert:

1.) die zufällige Anzeige eines Bildes

<?php
$bilder=array();
$dir=opendir("pics_3");
while($bild=readdir($dir)){
if($bild!= "." && $bild !="..")
array_push($bilder,"<img src=\"pics_3/$bild\">");
}
closedir($dir);
$max=count($bilder)-1;
$zufall=rand(0,$max);
$bild=$bilder[$zufall];
?>
// Bild ausgeben
<?php
echo $bild;
?>


2.) die zufällige Anzeige eines Textes:

<?php
$zitatarray = array(
"|Zitat1",
"|Zitat2",
"|Zitat3",
"|Zitat4",
"|Zitat5",
"|Zitat6",
"|Zitat7",
"|Zitat8",
"|Zitat9",
"|Zitat10",);

srand((double)microtime()*1000000);
$randval = rand(0,count($zitatarray)-1);
$entry = explode("|",$zitatarray[$randval]);
echo $entry[1];
?>


Meine Frage ist jetzt: Wie kann ich ein zufälliges Bild + eine dazugehörigen Text anzeigen lassen? Wie packe ich Bild + Text in ein Array? Also, wie kann ich die Bilder, die in einem Ordner liegen, mit zugehörigen Texten/Zitaten verknüpfen und dann nach dem Zufallsprinzip anzeigen lassen. Ich komme da gerade nicht weiter. Kann mir da einer auf die Sprünge helfen? Vielen herzlichen Dank im Voraus!!!

Ina

xlb 21.09.2006 14:58:44

AW: Zufällige Anzeige von Bild + Text
 
Du könntest ein "assoziatives" Array für die Zitate verwenden, mit den Bildnamen als Schlüssel :

Code:

...
$Zitat["PicX"] = "Zitat X";
$Zitat["PicY"] = "Zitat Y";
$Zitat["PicZ"] = "Zitat Z";
...

Nur mal so als Idee. Eine DB-Lösung wär'aber vielleicht besser ...?

buero_b 21.09.2006 15:10:54

AW: Zufällige Anzeige von Bild + Text
 
Es geht um 25 bis max. 50 Bild-Text-Kombinationen. Mein erster spontanter Gedanke war, DB ist zu langsam??? Wie ich die Verknüpfung zwischen Bild und Text hinbekomme, leuchtet mir nicht ein. Aber ich werd mal unter assoziativem Array nachlesen. Falls jemand schon einen Quellcode da hat, bin ich auch für jeden Tipp/Link dankbar.

Ina.

Opendix 21.09.2006 15:21:05

AW: Zufällige Anzeige von Bild + Text
 
hmm... also ich würde das mit ner DB lösen..

machste einfach ne Tabelle:
Code:

+----+---------------+-----------------+
| ID | Bild          | Zitat          |
+----+---------------+-----------------+
|  1 | bild1.jpg    | Zitat zu Bild1  |
|  2 | bild2.jpg    | Zitat zu Bild2  |
+----+---------------+-----------------+

dann musst du dich auch nicht mehr mit diesem komischen Zufallszeugs rumschlagen denn dafür gibts ja MySQL :)

PHP-Code:

$query "SELECT bild, zitat FROM tabelle ORDER BY RAND() LIMIT 1";
$insert mysql_query($query);
$daten mysql_fetch_assoc($insert);

//nun hast du ein array geannt $daten

$daten['bild'//entspricht dem Namen des zufallbildes
$daten['zitat'//entspricth dem dazugehörigen Zitat 


xlb 21.09.2006 15:28:27

AW: Zufällige Anzeige von Bild + Text
 
OK - wenn's um eine "statische" Menge von Bildern und Zitaten geht, wäre eine Array-Lösung wohl ausreichend.

Du ermittelst die Bildnamen (-> $bilder) doch in einer Schleife, wobei du das IMG-Zeugs nicht mit in das Array packen solltest, sondern nur den tatsächlichen Bildnamen (!!!).
Holst du dann "zufällig" einen Bildnamen (-> $bild) aus dem Array, kannst du diesen als "Schlüssel" für das entsprechende Zitat verwenden :

echo $zitatarray[$bild];

buero_b 25.09.2006 14:12:20

AW: Zufällige Anzeige von Bild + Text
 
Hallo,

ich bin hier immer noch nicht klar gekommen. Wie adressiere ich denn jetzt ein Bild-Text-Paar im assoziativen Array?

<?php
$arrZufall = array(
'testimonial_1.jpg'=>'Text 1 zum Bild 1.',
'testimonial_2.jpg'=>'Text 2 zum Bild 2.',
'testimonial_3.jpg'=>'Text 3 zum Bild 3.',
'testimonial_4.jpg'=>'Text 4 zum Bild 4.',
'testimonial_5.jpg'=>'Text 5 zum Bild 5.',
'testimonial_6.jpg'=>'Text 6 zum Bild 6.',
'testimonial_7.jpg'=>'Text 7 zum Bild 7.');
srand((double)microtime()*1000000);
$randval = rand(0,count($arrZufall)-1);
echo $randval;
echo $arrZufall[$randval];
?>

Nochmal vielen Dank, wenn hier einer drauf schaut und den/die Fehler sieht.
Ina.

Opendix 25.09.2006 14:24:33

AW: Zufällige Anzeige von Bild + Text
 
also du hast da das Array, als Schlüssel den Pfad und als Wert den Text!
PHP-Code:

$zufall each($randval[$randval]);
echo 
$zufall[0]; //Schlüssel / Bildpfad ausgeben
echo $zufall[1]; //Wert / Text ausgeben 

müsste eigenltich gehen :)

www.php.net/each

buero_b 25.09.2006 16:00:27

AW: Zufällige Anzeige von Bild + Text
 
Nein, das klappt so leider nicht. Mit each kann ich mir zwar ein Bild-Text-Paar ausgeben lassen, ich weiß aber nicht, wie ich das jetzt mit der Zufallsfunktion kombiniere???

Trotzdem danke!!! Ich bin noch am rumprobieren.

Ina.

buero_b 26.09.2006 08:45:00

AW: Zufällige Anzeige von Bild + Text
 
<?php
$arrZufall = array(
'<img src=testi/testimonial_1.jpg>' =>'Text 1 zum Bild 1.',
'<img src=testi/testimonial_2.jpg>' =>'Text 2 zum Bild 2.',
'<img src=testi/testimonial_3.jpg>' =>'Text 3 zum Bild 3.',
'<img src=testi/testimonial_4.jpg>' =>'Text 4 zum Bild 4.',
'<img src=testi/testimonial_5.jpg>' =>'Text 5 zum Bild 5.',
'<img src=testi/testimonial_6.jpg>' =>'Text 6 zum Bild 6.',
'<img src=testi/testimonial_7.jpg>' =>'Text 7 zum Bild 7.');
srand((double)microtime()*1000000);
$randval = rand(0,count($arrZufall)-1);
echo "Zufallszahl: ". $randval;
?>

Die Zufallszahl zwischen 0 und 6 steht in $randval.
Sie adressiert doch jetzt das Bild-Text-Paar. Wie genau geht das?
Wie gebe ich jetzt z.B. das Bild-Text-Paar bild_3 + Text 3 aus?

echo [im Array das per Zufallszahl ausgewählte Bild-Text-Paar]

Ich komme hier nicht weiter. Kann mir bitte nochmal einer auf die Sprünge helfen?

Vielen Dank! Ina.

xlb 26.09.2006 09:54:57

AW: Zufällige Anzeige von Bild + Text
 
Hier mal ein Beispiel :

PHP-Code:

        $Images=array('testimonial_1.jpg','testimonial_3.jpg','testimonial_2.jpg');
        
                        
// $Images enthält die Bilder im Verzeichnis
        
        
$Quotes=array   
                (
                     
'testimonial_1.jpg'=>'bla bla',
                     
'testimonial_2.jpg'=>'schwätz',   
                     
'testimonial_3.jpg'=>'sülz',
                );
                
                        
// in $Quotes werden den Bildern die Zitate zugeordnet
                                                
        
$QuoteX=rand(0,(count($Quotes)-1));
        
                        
// Auswahl des Bildes, bzw. des entsprecheden Index in $Images
        
        
echo $Quotes[$Images[$QuoteX]];
        
                        
// Ausgabe des Zitats, durch Angabe des Bildnamens 



Alle Zeitangaben in WEZ +2. Es ist jetzt 10:07:31 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.