Rotazione di Banner od Immagini con PHP

Pubblicato da Yuri Carlenzoli | 07 luglio 2009

Tramite la funzione rand() di PHP è possibile far ruotare banner od immagini casualmente o con una percentuale stabilita, ecco come fare.

rotazione-banner-immagini-php

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.

2 commenti su “Rotazione di Banner od Immagini con PHP

  1. clshack

    CON PHP SI POSSO FARE COSE VERAMENTE UTILI IN POCHE RIGHE DI CODICE, BASTA AVERE ((FANTASIA) AND (PASSIONE))

  2. yuri Autore del post

    Per risponderti a tema... IF si ha voglia ELSEIF e tempo 🙂

    Ciao cslhack!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Moderazione dei commenti attiva. Il tuo commento non apparirà immediatamente.