Tramite la funzione rand() di PHP è possibile far ruotare banner od immagini casualmente o con una percentuale stabilita, ecco come fare.
La funzione rand() di PHP non può venire utile solamente per effettuare rotazione di banner pubblicitari od immagini ma si potrebbe anche far ruotare colori, estrarre numeri a sorte e molto altro.
Ruotare le immagini con PHP e rand()
Ammettendo che si voglia visualizzare un'immagine casuale per l'header di un sito web; bisogna creare una cartella e metterci il numero d'immagini che si vuole far ruotare e rinominarle come 1.png, 2.png, ecc., con 5 immagini diverse si dirà allo script di estrarre 5 numeri. Se si usa wordpress crearla nella directory del template che si usa, nell'esempio la chiamerò "img" questa cartella.
Ora si cerca nell'header.php il DIV dell'immagine che potrebbe essere ad esempio <div id="header" style="background:transparent url(images/header.png) no-repeat top left;"></div>
e lo si modifica in questo modo:
<?php
num = rand(1,5);
<div id="header" style="background:transparent url(img/.png) no-repeat top left;"></div>
?>
Questo codice dice di tirare a sorte i numeri da 1 a 5 nella prima riga e visto che c'è solo l'estensione del file ma non il numero che invece lo hanno le immagini presenti nella cartella img metterà quel numero. L'apertura e la chiusura del codice php l'ho messa per correttezza così possono utilizzarlo tutti, in wordpress c'è già nell'header.php e si può far senza metterlo.
Ruotare i banner con PHP
Comincio a dire che questo non è uno split test anche se simile perchè i banner vengono mostrati random, in numeri ripetibili, cioè può essere visualizzato 2 volte di fila lo stesso numero, in una percentuale modificabile ma non perfettamente definibile.
Facciamo l'ipotesi di avere 3 banner, uno lo si vuol visualizzare il 20% e gl'altri due rispettivamente il 40%, ecco il codice:
<?php
// sorteggia un numero da 1 a 100
$banner=rand(1, 100);
// da 1 a 40 visualizza questo banner
if($banner<=40){
echo "QUI IL CODICE DEL BANNER 1";
}
// da 40 a 80 visualizza questo banner
elseif($banner<=80){
echo "QUI IL CODICE DEL BANNER 2";
}
// da 80 a 100 visualizza questo banner
elseif($banner<=100){
echo "QUI IL CODICE DEL BANNER 3";
}
?>
La logica dello script non è difficile, nel primo pezzo tira a sorte numeri da 1 a 100 poi sotto ci sono tre condizioni, nel caso il numero sia da 1 a 40 visualizza il primo banner (40% di visualizzazioni), da 40 ad 80 il secondo, sempre il 40% e da 80 a 100 visualizza il terzo.
Via instantShift, phpeasystep.
Thanks to image Arenamontanus.
CON PHP SI POSSO FARE COSE VERAMENTE UTILI IN POCHE RIGHE DI CODICE, BASTA AVERE ((FANTASIA) AND (PASSIONE))
Per risponderti a tema... IF si ha voglia ELSEIF e tempo 🙂
Ciao cslhack!