Manual: Rotador de banners con php sin bases de datos

Este Manual para hacer un Rotador de banners con php sin bases de datos es, por asi decir, como otro capítulo tras el de como poner banners en un blog de WordPress.com de hace un par de días. Llevo tiempo queriendo poner este manual sobre como hacer un pequeño rotador de banners con PHP de lo más versátil y adaptable para usarlo en distintas ubicaciones de una misma página y todo ello sin usar una base de datos. En ocasiones te hace falta para un CMS, para un Sponsor, etc. O simplemente quieres probar. No pasa nada, es sencillo.

Necesitaremos 3 archivos, banners.txt, banner.php y otro archivo llamado index.php. Este ultimo realmente no es necesario, es solo para mostrar como funciona finalmente el ejemplo.

banner.txt (Estructura URL|imagen|texto alternativo|destino| ubicación)

https://www.cursemon.com|banerwebmasters.gif|Crea tu Propia Web o Blog|_blank|1
https://evitalacrisis.com|bannerevita.gif|Ganar Dinero y Ahorrar|_blank|2
https://www.summarios.com|bannersummarios.gif|Urgencias y Emergencias|_blank|1

Como veréis hay definidos tres URL, dos de las cuales están identificados por el numero 1 lo que le indicará a nuestro script donde deberá ser mostrado (si en la sección 1 o 2).

NOTA: en el banners.txt ten cuidado de no dejar líneas en blanco tanto al principio como al final del archivo.

Pasemos al banner.php:

<?php
function escribeBanner($ubicacion) {
$fp = fopen("banners.txt", "r");
$indice = 0;
while (!feof($fp)) {
$linea[$indice] = fgets($fp, 256);
$indice++;
}
// Anchos predefinidos de los banners
if($ubicacion == 1){
$ancho = "150";
$alto = "60";
} elseif($ubicacion == 2){
$ancho = "150";
$alto = "60";
}
$rIndice = mt_rand(0, $indice -1);
list($url, $img, $alt, $tgt, $ub) = explode("|", $linea[$rIndice]);
if($ub == $ubicacion){
$banner = "<a href=\"$url\" target=\"$tgt\"> <img src=\"$img\" border=\"0\" alt=\"[$alt]\"></a>\n";
return $banner;
}
}
?>

Ahora ya estamos en condiciones de probar nuestro flamante rotador de banners, para lo cual debemos incluir sólo una vez al archivo que contendrá el o los banners y luego invocar la función “escribeBanner()” a la cual le pasaremos un parámetro (en este caso en particular 1 o 2) que será el que filtrará entre las distintas ubicaciones de los banners.

<?php
include ("banner.php");
echo "Banner ubicacion 1";
echo escribeBanner(1);
echo "<hr>";
echo "Banner ubicacion 2";
echo escribeBanner(2);
?>

Y esto sería todo, espero que te sea de utilidad. Cualquier cosa me comentáis, y por supuesto si tenéis sugerencias de mejora o lo que sea me lo podéis comentar también tanto aquí como en el Foro.