Imágenes aleatorias desde un directorio con PHP

Si desean mostrar imágenes de un directorio de su servidor de manera aleatoria, pues esta es una solución. Simplemente deberas configurar los tipos de imágenes que deseas que se muestren y el directorio donde están alojadas.

Algunas funciones usadas:

array_randSelecciona una o más entradas aleatorias de una matriz

opendirAbre un directorio

readdir — Devuelve el nombre del siguiente archivo leido desde el directorio

strrchr Encuentra la última aparición de un caracter en una cadena

unsetRemover una variable dada

Código

<?php
// extensiones a mostrar
$extensions = array('jpg','jpeg','gif','png','bmp');

// nombre del directorio
$folder_image_name = "/wp-content/uploads/upload/";

// ruta del directorio
$images_folder_path = $_SERVER['DOCUMENT_ROOT'].$folder_image_name;

// url del directorio
$url_to_folder = 'http://'.$_SERVER["SERVER_NAME"].$folder_image_name;

// array de imagenes
$images = array();

//srand((float) microtime() * 10000000); // Si es PHP Version < 4.2.0

// abrimos directorio y mostramos imagenes
if ($handle = opendir($images_folder_path)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {

// obtener extension del archivo
$ext = strtolower(substr(strrchr($file, "."), 1));

// almacenamos en el array
if(in_array($ext, $extensions)){
$images[] = $url_to_folder.$file;
}
}
}
closedir($handle);
}

if(!empty($images)){ // si tenemos algo que mostrar...
$rand_key = array_rand($images, 1);
$src = $images[$rand_key];
echo "<img src='".$src."' align='absmiddle'>";

// mostrar una segunda imagen diferente a la primera
unset($images[$rand_key]);
$rand_key = array_rand($images, 1);
$src = $images[$rand_key];
echo "<br /><br /><img src='".$src."' align='absmiddle'>";
}else{
// nada que mostrar
echo 'No se encontraron imagenes en <strong>'.$images_folder_path.'</strong>';
}
?>

Vía BitRepository

3 thoughts on “Imágenes aleatorias desde un directorio con PHP

  1. muy interesante
    solo un par de consultas
    1º como puedo hacer que la imagen salga a un tamaño expecifico ahora sale al tamaño de la foto
    2º se puede modificar para que la vista sea horizontal
    un saludo

Leave a Reply

Your email address will not be published. Required fields are marked *

Proudly powered by WordPress | Theme: Wanderz Blog by Crimson Themes.