PHP | Como mostrar contenido e imagenes aleatorias con PHP

Por: Nicolas Seijas | Categoría: PHP

Existen varias formas de mostrar imágenes y/o texto random con php, en este caso les enseñaremos una forma en que controlaremos cada aspecto que deseemos incluir en nuestro código.

<?php

$numero = 3 ;
$random = rand(1,$numero);

$img = array();
$url = array();
$txt = array();
$title = array();
$titulo = array();
$texto = array();

$img[1] = " http://www.tusitio.com/images/1.jpg ";
$url[1] = " http://www.tusitio.com/";
$txt[1] = " Imagen 1";
$title[1] = " Imagen 1";
$titulo[1] = "Prueba 1";
$texto [1] = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit,
sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna
aliquam erat volutpat.";

$img[2] = " http://www.tusitio.com/images/2.jpg  ";
$url[2] = " http://www.tusitio.com ";
$txt[2] = " Imagen 2 ";
$title[2] = " Imagen 2 ";
$titulo[2] = "Prueba 2";
$texto [2] = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit,
sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna
aliquam erat volutpat.";

$img[3] = " http://www.tusitio.com/images/3.jpg ";
$url[3] = " http://www.tusitio.com ";
$txt[3] = " Imagen 3 ";
$title[3] = " Imagen 3 ";
$titulo[3] = "Prueba 3";
$texto [3] = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit,
sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna
aliquam erat volutpat. ";

echo "<div class=\"random\">";
echo "<a href='$url[$random]' target=' _blank '><img src='$img[$random]'
alt='$txt[$random]' title='$title[$random]' border=' 0 '></a>";
echo "<h2><a href='$url[$random]'>$titulo[$random]</a></h2>";
echo "<p> $texto[$random] </p>";
echo "</div>";
?>
Explicación:  

1. En $numero = 3; deberemos cambiar el 3 por la cantidad de imagenes y/o texto que iremos a utilizar.

2. $random = rand(1,$numero); aca utilizamos la función rand(), como vemos el 1 esta indicando cuantas imagenes se van a mostrar de la cadena $numero.

¿Te gustó el artículo?

Recomiendalo a través de las redes sociales

Comentarios

Si deseas agregar un código a tu comentario por favor usa el siguiente formato: <pre name="code" class="php">Tu código</pre>. Puedes reemplazar la clase con "js", "css", "sql", o "html". Si el código tiene algún "<" o ">" en tu código reemplazalo con: &lt; y &gt; respectivamente.

Este artículo tiene 13 comentarios

  • Alberto, comento el 29 de octubre del 2010:

    Yo de PHP sinceramente se poco y nada pero lo tendré en cuenta!
    Una pregunta, ¿para que se muestre debo enlazar el archivo PHP al HTML como una imagen?

  • Source, comento el 29 de octubre del 2010:

    Hola Alberto, al código lo puedes poner directamente en el HTML.

    Saludos!

  • sergio, comento el 04 de marzo del 2011:

    Hola amigos , la verdad que buen post XD me sirvio de mucho y que bien que alla gente como tu.

    saludos!!!!!!!!!!

  • Horacio Gereda, comento el 23 de marzo del 2011:

    Soy novato en php pero me ha sido de mucha utilidad y me parece excelente este script pero tengo una consulta,
    si quisiera agregarle que las imagenes roten cada cierto tiempo, como puedo hacerlo, o sea si tengo 3 imagenes como en el ejemplo, como puedo hacer para que se muestren durante 8 horas cada una?
    Desde ya muchas gracias
    Saludos cordiales

  • Source, comento el 23 de marzo del 2011:

    Hola Horacio, prueba este codigo

    < ?php
    $zona_horaria = + 0;
    $imagen_random = date("H", time() + (3600 * $zona_horaria)) ;
    ;?>
    
    < ?php
    if ($imagen_random >= 16 && $imagen_random < 0) { ;?>
    "imagen aca"
    < ?php } else if ($imagen_random >= 0 && $imagen_random < 8) { ;?>
    "imagen aca"
    < ?php } else if($imagen_random >= 8 && $imagen_random < 16) { ;?>
    "imagen aca"
    < ?php } ;?>
    

    Saludos

  • Horacio Gereda, comento el 24 de marzo del 2011:

    Hola , muchas gracias por tu pronta respuesta, pero como te dije anteriormente soy un novato en php, y con este ultimo codigo no logro ver las imagenes donde dice “imagen aca” lo he sustituido por “http://www.misitio.com/imagen1.jpg y asi sucesivamente.

    Igualmente yo lo que realmente me interesaba era el codigo que enseñas arriba, porque tiene la ventaja de que tiene titulo, enlace saliente y muchas cosas mas que sirven para el seo de una web, y pensaba que se le podia agregar alguna variable a ese mismo codigo para que funcione mostrando una imagen cada tantas horas.

    Antes de consultarte habia estado investigando y probando algunas cosas con este buen script que presentas y una de ellas era esta que muestro a continuación (este tampoco me funciono)
    <?php
    $hora =date('h:i');
    $timezone = -3; //GMT$quediaes=gmdate("D", time() + 3600*($timezone+date('I'))); $quehoraes=gmdate("G", time() + 3600*($timezone+date('I')));
    $quediaes=date("D");
    $quehoraes=date("G"); /// (eso nos devuelve la hora del 1 al 24)
    $numero = 3 ;
    $random = rand(1,$numero);

    $img = array();
    $url = array();
    $txt = array();
    $title = array();
    $titulo = array();
    $texto = array();

    $img[1] = " http://www.misitio.com/images/imagen1.jpg ";
    $url[1] = " http://www.sitiosaliente1.com/";
    $txt[1] = " DESCRIPCION";
    $title[1] = " TITULO";
    $titulo[1] = "NOMBRE";
    $texto [1] = "TEXTO";

    $img[2] = " http://www.misitio.com/images/imagen2.jpg ";
    $url[2] = " http://www.sitiosaliente2.com/";
    $txt[2] = " DESCRIPCION";
    $title[2] = " TITULO";
    $titulo[2] = "NOMBRE";
    $texto [2] = "TEXTO";

    $img[3] = " http://www.misitio.com/images/imagen3.jpg ";
    $url[3] = " http://www.sitiosaliente3.com/";
    $txt[3] = " DESCRIPCION";
    $title[3] = " TITULO";
    $titulo[3] = "NOMBRE";
    $texto [3] = "TEXTO";

    if ($hora == "1"){$imagen = "$img[3]"; }
    if ($hora == "5"){$imagen = "$img[2]"; }
    if ($hora == "9"){$imagen = "$img[1]"; }
    if ($hora == "13"){$imagen = "$img[3]"; }
    if ($hora == "17"){$imagen = "$img[2]"; }
    if ($hora == "21"){$imagen = "$img[1]"; }

    echo "”;
    echo ““;
    echo “$titulo[$random]“;
    echo ” $texto[$random] “;
    echo “”;
    ?>

    Desde ya muchas gracias por cualquier ayuda que puedas prestarme

  • Source, comento el 24 de marzo del 2011:

    Hola Horacio, primero que nada donde pusiste la direccion tambien pusiste la etiqueta img?

    En el codigo que pones veo un par de errores. Por ejemplo:

    if ($hora == "1"){$imagen = "$img[3]"; }
    if ($hora == "5"){$imagen = "$img[2]"; }
    if ($hora == "9"){$imagen = "$img[1]"; }
    if ($hora == "13"){$imagen = "$img[3]"; }
    if ($hora == "17"){$imagen = "$img[2]"; }
    if ($hora == "21"){$imagen = "$img[1]"; }
    

    Deberia ser:

    if ($hora >= "1" && $hora < = "5"){$imagen = "$img[3]"; }
    if ($hora >= "5" && $hora < = "9"){$imagen = "$img[2]"; }
    if ($hora >= "9" && $hora < = "13"){$imagen = "$img[1]"; }
    if ($hora >= "13" && $hora < = "17"){$imagen = "$img[3]"; }
    if ($hora >= "17" && $hora < = "21"){$imagen = "$img[2]"; }
    if ($hora >= "21" && $hora < = "24"){$imagen = "$img[1]"; }
    

    Aca estamos diciendo que si (if) $hora es mayor (>=) que 1 y (&&) menor (<=) que 5 nos muestre {$imagen = "$img[3]; }

    Al final del codigo te falta ademas hacer un "echo" de la imagen.

  • Horacio Gereda, comento el 24 de marzo del 2011:

    Muchas gracias por contestar, pero no logro hacer que funcione, en fin… igualmente cuando pegue el codigo en dreamweaver me daba error de sintaxis y al probarlo en la web da el mismo error, y por lo que investigue habria que sacarle los signos de =
    quedaria asi

    if ($hora > “1″ && $hora <"5"){$imagen = "$img[3]"; }

    y supuestamente tendria que funcionar pero no lo logre, asi que seguire investigando.
    Igualemente me parece muy bueno tu blog y ya voy a utilizar algunas cosas del mismo como tu articulo
    -Como redimensionar una imagen proporcionalmente con css y no morir en el intento
    Muchas gracias por todo
    Saludos

  • Source, comento el 25 de marzo del 2011:

    Los llamados operadores de comparación $a >= $b nos indica que $a es mayor o igual que b, por esto te lo agregue al codigo, mientras que el operador $a > $b es estrictamente mayor $a que $b.

    Por otra parte, revise el codigo antes de enviartelo y no encontre errores ni problemas en dreamweaver, chequea que hayas escrito integro el codigo y no hayas modificado algo.

    Teoricamente deberia funcionar aunque deberás hacerle unos pequeños ajustes al resto de tu codigo.

    Saludos

  • Source, comento el 25 de marzo del 2011:

    Acabo de ver el problema del codigo que te pase, en realidad fue provocado por el comentario, ya que al tratar de editarlo me aparecia bien pero aca los simbolos <= aparecen separados y no pueden tener separacion.

    Saludos

  • Julia Saborido, comento el 24 de julio del 2011:

    Gracias por el código!! me vino fantástico para resolver algo que quería lograr con unas imágenes de fondo aleatorias en un tema de wordpress.

    Sólo me costó un poquito entender cómo colocar la dirección del template (con el código que usa wordpress) sin que luego diera error, pero era tan simple como esto:

    <img src="” />

  • Source, comento el 27 de julio del 2011:

    Hola Julia, nos alegra de que te haya servido el código.

    Saludos!

  • claudia pardina, comento el 11 de octubre del 2011:

    hola, voy a probar este php pero quería saber cómo puede hacerse que sea el cambio cada 24 horas; y una vez que se nos hayan terminado las imagenes $img[3] vuelva a empezar en la primera $img[1].
    Mil gracias!! De verdad me ayudarías muchísimo.