Mi chiedo come sia possibile "tirare" un'immagine casuale da una cartella.PHP estrarre un'immagine casuale dalla cartella
Come dire, per avere php basta selezionare un'immagine casuale dalla cartella invece di cercare e creare un array di esso.
ecco come lo faccio oggi
<?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 = '';
}
?>
** la tua risposta è bella e breve! ** ma c'è un problema! se la directory delle immagini contiene un gran numero di immagini (1K), [scandir] (http://php.net/manual/en/function.scandir.php) le caricherà tutte in un array. Mentre è necessaria una sola immagine. C'è un modo per migliorare la tua risposta? E se riesci a racchiuderlo in una funzione con l'opzione di ottenere un numero limitato di immagini. e '$ return_images_count = 10;', Quello che intendo è parzialmente spiegato in [questa domanda] (https://stackoverflow.com/q/10642777/7735285). + 'opendir' sembra più veloce nella profilazione. – wpcoder