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_rand — Selecciona una o más entradas aleatorias de una matriz
opendir — Abre 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
unset — Remover 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


Dejar un comentario