Me pregunto acerca de una "mejor" forma de sacar una imagen aleatoria de una carpeta.imagen aleatoria de extracción de PHP de la carpeta
Como decir, para tener php simplemente seleccione una imagen aleatoria de la carpeta en lugar de buscar y crear una matriz de la misma.
aquí es cómo lo hago hoy
<?php
$extensions = array('jpg','jpeg');
$images_folder_path = ROOT.'/web/files/Header/';
$images = array();
srand((float) microtime() * 10000000);
if ($handle = opendir($images_folder_path)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
$ext = strtolower(substr(strrchr($file, "."), 1));
if(in_array($ext, $extensions)){
$images[] = $file;
}
}
}
closedir($handle);
}
if(!empty($images)){
$header_image = $images[array_rand($images)];
} else {
$header_image = '';
}
?>
** ¡su respuesta es buena y breve! ** ¡pero hay un problema! si el directorio de imágenes contiene una gran cantidad de imágenes (1K), [scandir] (http://php.net/manual/en/function.scandir.php) las cargará todas en una matriz. Mientras solo necesita una imagen. ¿Hay alguna manera de mejorar tu respuesta? Y si puede envolverlo en una función con la opción de obtener un número limitado de imágenes. es decir '$ returned_images_count = 10;', Lo que quiero decir se explica parcialmente en [esta pregunta] (https://stackoverflow.com/q/10642777/7735285). + 'opendir' se ve más rápido en el perfilado. – wpcoder