- Home
- Categorie
- Coding e Sistemistica
- Coding
- [Include()] Aiuto script
-
[Include()] Aiuto script
Raga, ieri sera ho buttato giù questo script che mi deve includere due immagini .gif in una pagina, in relazione al valore di una variabile random.
<?php $random_d_1 = rand(0,4); switch($random_d_1){ case $random_d_1 == 1: require("d_blue.gif"); break; case $random_d_1 == 2: require("d_green.gif"); break; case $random_d_1 == 3: require("d_red.gif"); break; case $random_d_1 == 4: require("d_yellow.gif"); break; default: echo "Error"; } ?> <?php $random_a_1 = rand(0,3); switch($random_a_1){ case $random_a_1 == 0: require("a_blue.gif"); break; case $random_a_1 == 1: require("a_green.gif"); break; case $random_a_1 == 2: require("a_red.gif"); break; case $random_a_1 == 3: require("a_yellow.gif"); break; default: echo "Error"; } ?>
Il problema è che lo script mi include una sola immagine, poi più nulla. Mi sa che l'include() blocca il codice dopo esser stato eseguito. Non mi fa visualizzare l'html e se aggiungo tag di html l'output sono solo righe di codice senza (apparente) senzo. Che sia perchè i file da includere sono .gif?
-
non si includono le gif
devi inserirle con il tag img invece che con l'include. vedi se così va..sennò ripassa che vediamo dov'è il problema
-
Oky: ci provo, poi faccio sapere.
Grazie mille!
-
<?php $random_d_1 = rand(0,4); switch($random_d_1){ case $random_d_1 == 1: echo "<img src=\"d_blue.gif\">"; break; case $random_d_1 == 2: echo "<img src=\"d_green.gif\">"; break; case $random_d_1 == 3: echo "<img src=\"d_red.gif\">"; break; case $random_d_1 == 4: echo "<img src=\"d_yellow.gif\">"; break; default: echo "Error"; } $random_a_1 = rand(0,4); switch($random_a_1){ case $random_a_1 == 1: echo "<img src=\"a_blue.gif\">"; break; case $random_a_1 == 2: echo "<img src=\"a_green.gif\">"; break; case $random_a_1 == 3: echo "<img src=\"a_red.gif\">"; break; case $random_a_1 == 4: echo "<img src=\"a_yellow.gif\">"; break; default: echo "Error"; } ?>
-
A proposito del codice qui sopra, qualcuno sa come compattarlo?
Nel senso, dato questo codice:<?php $random_d_1 = rand(0,4); switch($random_d_1){ case $random_d_1 == 1: echo "<img src=\"d_blue.gif\">"; break; case $random_d_1 == 2: echo "<img src=\"d_green.gif\">"; break; case $random_d_1 == 3: echo "<img src=\"d_red.gif\">"; break; case $random_d_1 == 4: echo "<img src=\"d_yellow.gif\">"; break; default: echo "Error"; } ?>
qualcuno sa come semplificarlo, raggiungendo lo stesso risultato? Mio fratello m'ha detto d'utilizzare un ciclo for, ma non mi è tanto chiara l'idea..
-
se cambi i nomi delle gif, puoi usare questo codice:
<?php $random_d_1 = rand(0,4); echo "<img src=\"d_".$random_d_1.".gif\">"; ?>
altrimenti nada
-
Mmm, capito capito...
E, sempre per caso
, ti viene in mente come rendere un pò più "casuali" i colori delle lettere? Voglio dire: così com'è, capita spesso che ci siano più lettere vicine con lo stesso colore. E' possibile rimediare?
-
<?php $random_d_1=array(1, 2, 3, 4); $valore=""; $valore2=""; inizio ciclo.. if($valore!=""){ $valore2=$valore; array_shift($random_d_1); } shuffle($random_d_1); $valore = $random_d_1[0]; echo "<img src=\"d_".$valore.".gif\">"; if($valore2!=""){ $random_d_1[4] = $valore2; } ..fine ciclo ?>
Il codice (che ho fatto al volo e non ho testato) dovrebbe fare questo:
assegna all'array $random_d_1 i numeri 1, 2, 3, 4 e inizializza le variabili $valore e $valore2
Nel ciclo invece se $valore è iverso da vuoto allora assegna a $valore2 il contenuto di $valore e toglie dall'array $random_d_1 il numero che coincide con $valore.
poi mescola l'array e assegna a $valore il numero che corrisponde alla posizione 0 dell'array.
crea l'immagine
se $valore2 è diverso da vuoto allora inserisce alla fine dell'array (la posizione 4) il valore che prima aveva eliminato.
in sostanza questo script (se funziona) fa questo:
abbiamo 4 palline e le mescoliamo
ne prendiamo una a caso (che chiamiamo A) e la scriviamo
ne prendiamo un'altra a caso (B) senza rimettere A nel cesto e la scriviamo
rimettiamo A nel cesto e peschiamo un'altra pallina (C), la scriviamo e rimettiamo B nel cesto
e così via
In questo modo è impossibile che vengano pescate 2 palline consecutive con lo stesso valore.
Dimmi se non funziona
-
Sempre ottimo kerouac3001
-
@ico1989 said:
A proposito del codice qui sopra, qualcuno sa come compattarlo?
Nel senso, dato questo codice:<?php $random_d_1 = rand(0,4); switch($random_d_1){ case $random_d_1 == 1: echo "<img src=\"d_blue.gif\">"; break; case $random_d_1 == 2: echo "<img src=\"d_green.gif\">"; break; case $random_d_1 == 3: echo "<img src=\"d_red.gif\">"; break; case $random_d_1 == 4: echo "<img src=\"d_yellow.gif\">"; break; default: echo "Error"; } ?>
qualcuno sa come semplificarlo, raggiungendo lo stesso risultato? Mio fratello m'ha detto d'utilizzare un ciclo for, ma non mi è tanto chiara l'idea..
PS: gli switch si dovrebbero usare così!
<?php $random_d_1 = rand(0,4); switch($random_d_1){ case 1: echo "<img src=\"d_blue.gif\">"; break; case 2: echo "<img src=\"d_green.gif\">"; break; case 3: echo "<img src=\"d_red.gif\">"; break; case 4: echo "<img src=\"d_yellow.gif\">"; break; default: echo "Error"; } ?>
-
Mmm, sagace...
Ci devo riflettere: appena ho un pò di tempo (con la scuola...), lo provo e ti faccio sapere.
Grazie 1000
-
Ok, raga: penso di avercela fatta.
Appena completato il codice ve lo posto.
-
<?php //Prima estrazione $array = array(1 => "GIORGIOTAVE", "RINZI", "SMS"); echo "I forummisti sono: "; print_r($array); echo" "; $random_chiave = array_rand($array); $random_valore = $array[$random_chiave]; echo " Il forummista estratto è: " . $random_valore . " "; $random_chiave_meno1 = --$random_chiave; array_splice($array, $random_chiave_meno1, 1); $elimina1 = array_pop($array); $elimina2 = array_pop($array); $array = array(1 => $elimina1, $elimina2); echo " I forummisti rimanenti sono: ***"; print_r($array); echo "***"; echo " <hr> "; //Seconda Estrazione; echo "I forummisti sono: "; print_r($array); echo" "; $random_chiave_2 = array_rand($array); $random_valore_2 = $array[$random_chiave_2]; echo " Il forummista estratto è: " . $random_valore_2 . " "; $array[] = $random_valore; $random_chiave_2_meno1 = --$random_chiave_2; array_splice($array, $random_chiave_2_meno1, 1); $elimina_1_2 = array_pop($array); $elimina_2_2 = array_pop($array); $array = array(1 => $elimina_2_2, $elimina_1_2); echo " I forummisti, dopo il ritorno di " . $random_valore . ", sono: ***"; print_r($array); echo "***"; echo " <hr> "; [...] ?>
Lo so, raga, è lunghissimo, ma per ora questo so fare...
x kerouac: > array_shift($random_d_1);
Non penso si usi cosìx Pater:
se analizzi attentamente il codice, capisci perchè ho fatto la domanda nell'altro post.Dimenticavo, ecco l'output:
I forummisti sono: Array ( [1] => GIORGIOTAVE [2] => RINZI [3] => SMS )
Il forummista estratto è: RINZI
I forummisti rimanenti sono: Array ( [1] => SMS [2] => GIORGIOTAVE )
I forummisti sono: Array ( [1] => SMS [2] => GIORGIOTAVE )
Il forummista estratto è: SMS
I forummisti, dopo il ritorno di RINZI, sono: Array ( [1] => GIORGIOTAVE [2] => RINZI )
-
si hai ragione..va assegnato ad una variabile