Script php para rotar banners
Muchas veces uno quiere rotar banners en alguna sección de algún sitio web, una forma sencilla es hacerlo de forma aleatoria, aquí les dejo el código para hacerlo:
<?php
$numerodebanners = 3; // Numero de banners
$random = rand(1,$numerodebanners);
$Publicidades = array();
$Publicidades[1] = <<<EOT
// Aquí tu código del primer banner
EOT;
$Publicidades[2] = <<<EOT
// Aquí tu código del segundo banner
EOT;
$Publicidades[3] = <<<EOT
// Aquí tu código del tercer banner
EOT;
echo $Publicidades[$random];
?>
Es realmente muy sencillo, puedes incorporar este código a Wordpress o a cualquier sitio que tengas con PHP. Simplemente cambiando el numero de banners por el que quieras puedes agregar todos los banners que desees, después tienes que ir incrementando el array por ejemplo $Publicidades[4], etc.
Tambien funciona con Adsense
Espero que les sea útil.




Septiembre 11th, 2007 a las 14:28
Excelente
tal lo que te había dicho en el otro post, si que eres rápido Pablo, tienes la ventaja impresionante de enterarte bien de estos temas… Y yo por mi parte la suerte de ser tu amigo
jajajajajaja
Gracias, seguro que será de utilidad para muchos bloggers y webmasters…
Septiembre 11th, 2007 a las 14:31
Si mikel, esto es útil para todo webmaster/blogger y mucho más si funciona con adsense…
Septiembre 11th, 2007 a las 14:32
jajajaja No hay problema Mikel, hoy Conker me pregunto lo mismo asi que era duda general, bueno ahora no tienen excusas para hacer rotar sus banners en sus blogs
Septiembre 11th, 2007 a las 15:32
servira al blogger?
Septiembre 11th, 2007 a las 16:22
Hola Ronny, la verdad nunca estuve en Bloggers pero si permite la ejecución de codigo no debería tener problemas, pero creo que no lo permite, sera cuestión de probarlo. Saludos
Septiembre 11th, 2007 a las 20:18
En blogger no funciona…
Noviembre 9th, 2007 a las 12:59
[...] le podemos dar la opción de incluir varios tipos de banners en su espacio y luego hacerlos rotar de forma aleatoria. De cara al anunciante esta opción puede ser muy positiva para probar distintos formatos y ver [...]
Enero 15th, 2008 a las 16:12
Increíble, yo pegándome con el adrotator y de repente la forma más sencilla con éste código es el que mejor funciona
Enero 16th, 2008 a las 8:59
Solo me deja un array con 3 anuncios, cunado intento incluir más no me deja…
Enero 16th, 2008 a las 9:42
Hola Take, que error te devuelve?
Saludos!
Enero 30th, 2008 a las 19:03
En primer lugar quiero agradecer porque el script realmente funciona, es verdaderamene eficiente y lo estoy utilizando para una web que lleva bastante publicidad.
Pero resulta que ocurre algo un poco extraño y es que muestra, justo encima del lugar en donde se muestran todos los Banners el “?>” que cierra el bloque en donde va el código de los mismos.
Sinceramente no encuentro la manera de ocultarlo.
Alguien podría sugerir algo?
Muchas Gracias nuevamente.
Febrero 4th, 2008 a las 19:08
Pablo perdona mi tardanza ni me he dado cuenta de que has respondido.
Ya he conseguido implementar el array (no metí el número entre prentesis)
pero ahora elproblema es que me sale en el blog estas dos rayitas //
Febrero 4th, 2008 a las 19:12
Luego me da un error, porque tiende a salir varias veces repetido el mismo anuncio, como puedo solucionar eso?
Febrero 4th, 2008 a las 19:26
@Pablo Diego: Fijate que seguramente estas cerrando dos veces el mismo ?> si no es asi avisame.
@Take Away: las dos rayitas son por que de seguro que estas cerrando mal en algun lado un ;, si queres pasame por mail el codigo que estas usando y te digo, para evitar que salga repetido muchas veces el mismo anuncio lo unico que puedes hacer es meter mas publicidades, al menos de esta forma
Febrero 5th, 2008 a las 11:18
Pablo podrías poner el código para incluir no solo 3 sino N veces.
Ahí te dejo el código (el número 5 aparece el número 5)….
<?php
$numerodebanners = 5; // Numero de banners
$random = rand(0,$numerodebanners);
$Publicidades = array(5);
$Publicidades[1] = <<<EOT
//
EOT;
$Publicidades[2] = <<<EOT
//
var uri = ‘http://impes.tradedoubler.com/imp?type(js)g(16995152)a(1380711)’ + new String (Math.random()).substring (2, 11);
document.write(”);
EOT;
$Publicidades[3] = <<<EOT
//
EOT;
$Publicidades[4] = <<<EOT
//
var uri = ‘http://impes.tradedoubler.com/imp?type(js)g(16392968)a(1380711)’ + new String (Math.random()).substring (2, 11);
document.write(”);
EOT;
$Publicidades[5] = <<<EOT
//
var uri = ‘http://impes.tradedoubler.com/imp?type(img)g(16914506)a(1380711)’ + new String (Math.random()).substring (2, 11);
document.write(’‘);
EOT;
echo $Publicidades[$random];
?>
Febrero 5th, 2008 a las 11:26
Hola Take, el codigo seria practicamente el mismo, tendrias que sacar la linea $numerodebanners = 5; // Numero de banners y en la siguiente poner:
$random = rand(0,count($numerodebanners)); y moverla abajo de todo para que la funcion pueda contar la cantidad de publicidades que cargaste.
Luego en el array en lugar de poner un numero no pongas nada y se incrementara solo, con solo poner $publicidades[] estaria funcional
Avisame si me entendiste
Febrero 5th, 2008 a las 12:36
Pues va a ser que no lo del array ok pero lo de bajar el banner 5 pues como que no..
Podrías incluir el script como el del post pero con 6 o 7 (de ejemplo)?
Mayo 7th, 2008 a las 14:05
Hola, que tal? bueno les comento que tengo un codigo en javascript para banners rotatorios pero de manera aleatoria, y quiero evitar eso, es decir, quiero que me muestre las imagenes en el orden en el que tengo el arreglo y cuando las muestre todas, vuelva a empezar… como un ciclo… Se que el “random” hace la funcion de mostrarla aleatorias pero tambien se que no es sencillo, es decir, no basta con borrar el dandom y ya… podrian ayudarme? soy webmaster desde ace como 1 mes y hasta ahora este problemita me tiene algo bloqueado…
Gracias de antemano…!! Aqui les envio mi codigo (lo creo un compañero de trabajo que lo saco de un foro, pero tampoco sabe eliminarle el random):
/* ******************************************************************/
window.onload = function() {
setInterval(muestraImagen, 2000);
construye();
}
function muestraImagen(){
var numeros = new Array(9);
var b = new Array(”banners/bannereglamentoLOCTI.jpg”,
“banners/4tocongresosoftwarelibre.jpg”,
“banners/acreditacion.jpg”,
“banners/bloque_fijo_150_x_90.gif”,
“banners/CambioMonetario.jpg”,
“banners/cvlac_conect.gif”,
“banners/IVcensoEconomico.jpg”,
“banners/libroBiotecnolog.jpg”,
“banners/registro_sidcai.gif”,
“banners/consultaPublicaCenditelV2.jpg”);
var l =new Array(”http://www.mct.gob.ve/Vistas/Frontend/documentos/AnteproyectoReglamentoLOCTI.pdf”,
“http://www.cnsl.org.ve/tiki-index.php?page=caracas”,
“http://www.fonacit.gob.ve/convocatorias.asp?id=44″,
“http://www.mct.gob.ve/publico/capacitacion/”, //Malo
“http://www.bcv.org.ve/reconversion/bcvreconv.htm”,
“http://150.188.88.16:7777/silacve/PRC_CVLAC_LOGIN?f_opc=cvlac&f_nacion=V”,
“http://www.ine.gob.ve/ine/milcono/Index.htm”,
“http://www.mct.gob.ve/Vistas/Frontend/documentos/LibroBIOTECNOLOGICO_MPPCT.pdf”,
“http://sidcai.oncti.gob.ve/”,
“http://www.mct.gob.ve/Controladores/controlador_cnoticias.php?id_contenido=110″);
var x=Math.random()*numeros.length;
var y=parseInt(x);
document.getElementById(”imagen”).innerHTML =”“;
}
/* ******************************************************************/
PD: no se si me explique, lo que quiero es que las imagenes se muestren en el mismo orden en el que las tengo en el Array. Quisiera evitar modificar mucho la estructura, aunque si no hay de otra, pues chevere… Lo agradecere de verdad.
Saludos!!!
Mayo 7th, 2008 a las 14:09
El codigo anterior llego con errores… disculpen, este es el verdadero:
/***************************************************/
window.onload = function() {
setInterval(muestraImagen, 2000);
construye();
}
function muestraImagen(){
var numeros = new Array(9);
var b = new Array(”banners/bannereglamentoLOCTI.jpg”,
“banners/4tocongresosoftwarelibre.jpg”,
“banners/acreditacion.jpg”,
“banners/bloque_fijo_150_x_90.gif”,
“banners/CambioMonetario.jpg”,
“banners/cvlac_conect.gif”,
“banners/IVcensoEconomico.jpg”,
“banners/libroBiotecnolog.jpg”,
“banners/registro_sidcai.gif”,
“banners/consultaPublicaCenditelV2.jpg”);
var l =new Array(”http://www.mct.gob.ve/Vistas/Frontend/documentos/AnteproyectoReglamentoLOCTI.pdf”,
“http://www.cnsl.org.ve/tiki-index.php?page=caracas”,
“http://www.fonacit.gob.ve/convocatorias.asp?id=44″,
“http://www.mct.gob.ve/publico/capacitacion/”,
“http://www.bcv.org.ve/reconversion/bcvreconv.htm”,
“http://150.188.88.16:7777/silacve/PRC_CVLAC_LOGIN?f_opc=cvlac&f_nacion=V”,
“http://www.ine.gob.ve/ine/milcono/Index.htm”,
“http://www.mct.gob.ve/Vistas/Frontend/documentos/LibroBIOTECNOLOGICO_MPPCT.pdf”,
“http://sidcai.oncti.gob.ve/”,
“http://www.mct.gob.ve/Controladores/controlador_cnoticias.php?id_contenido=110″);
var x=Math.random()*numeros.length;
var y=parseInt(x);
document.getElementById(”imagen”).innerHTML =”“;
}
/* ********************************************************************/
Ahora si
Gracias!
Mayo 7th, 2008 a las 14:25
document.getElementById(”imagen”).innerHTML =” “;
}
PD: Veo que hay problemas para mostrar la ultima linea de codigo… lo que viene despues del innerHTML…
Mayo 7th, 2008 a las 14:43
innerHTML =”a h r e f=’” + l [y] + ” ‘ i m g s r c =’” + b[y] + “‘/ > /a”;
}
PD: ultimo intento… jejeje me rindo… les elimine los de las etiquetas de a y tambien en los de las imagenes… espero salga y sea entendible.