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 = "/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
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
Muy bueno funciona perfectamente, seria bueno poder redimensionar la imagen antes de mostrarla
Como puedo hacer que salgan una imagen diferente cada cierta cantidad de segundos?