Imágenes aleatorias desde un directorio con PHP

3
2298

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 = "/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 COMENTARIOS

  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

Comments are closed.