PHP ile basit düzeyde rasgele banner gösterimi

Şimdi PHP ile basit ve hızlı olarak, birden fazla banner reklamını rasgele olarak nasıl görüntüleyebileceğimizi göreceğiz 😛 Ne bileyim çok ağırbaşlı bir cümle oldu. Kendimi bir kursta ders veriyormuş gibi hissettim biran. Neyse bırakalım geyiği..

banner_listesi.txt adında bir dosya oluşturacağız ve her satırda bir reklama ait özellikleri barındıracağız. Peki nedir bu özellikler? Sırası ile banner resmi kaynağı (banner url), açıklama metni (fare ile üzerine gelindiğinde görüntülenecek metin) ve hedef adres (tıklandığında yönlendirme yapılacak url). Özelliklerimizi bu sırada yazacağınız ve bunların her birini birbirinden ; (noktalı virgül) ile ayıracağız. Örnek bir liste şu şekilde olabilir;


https://www.dmry.net/wp-banners/dmry_reklam_468x60_1.gif;Buraya reklam vermek sadece 25 YTL;https://www.dmry.net/reklam
https://www.dmry.net/wp-banners/dmry_reklam_468x60_2.gif;Buraya reklam vermek sadece 25 YTL;https://www.dmry.net/reklam
https://www.dmry.net/wp-banners/dmry_reklam_468x60_3.gif;Buraya reklam vermek sadece 25 YTL;https://www.dmry.net/reklam
https://www.dmry.net/wp-banners/dmry_reklam_468x60_4.gif;Buraya reklam vermek sadece 25 YTL;https://www.dmry.net/reklam

PHP dosyamız ise önce bu listeyi açacak ve buradaki toplam satır sayısına (aynı zamanda toplam banner sayısı oluyor) bakarak, aralarından rasgele olarak bir satır numarasını seçecek. Sonrasında seçtiğimiz bu satır numarasında yer alan banner özelliklerini birbirlerinden ayırarak çıktı vereceğiz. Genel mantık böyle. İşlevi gerçekleştiren kod ise alttaki 😉


<?php
$banner_listesi = (file_exists('banner_listesi.txt')) ? file('banner_listesi.txt') : die('banner_listesi.txt bulunamıyor.');
$toplam_banner = count($banner_listesi);
if ($toplam_banner > 0) {
$rasgele_satir = ($toplam_banner == 1) ? 0 : rand(0,$toplam_banner-1);
$banner_ozellikler = explode(';',$banner_listesi[$rasgele_satir]);
echo '<a href="'.$banner_ozellikler[2].'" title="'.$banner_ozellikler[1].'"><img src="'.$banner_ozellikler[0].'" alt="'.$banner_ozellikler[1].'" border="0" /></a>';
}
?>

Şimdilik basit düzeyde bu işlemi gerçekleştirdik. İleri de ise daha gelişmiş özellikler katacağız.