我想知道從文件夾中拉出隨機圖像的「更好」方式。從文件夾中拉出隨機圖像
就像說,讓PHP只是從文件夾中選擇一個隨機圖像,而不是搜索和創建一個數組。
這裏是我今天做
<?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 = '';
}
?>
**您的答案很好,很簡短!**但還有一個問題! 如果圖像目錄包含大量圖像(1K),[scandir](http://php.net/manual/en/function.scandir.php)會將所有圖像加載到數組中。 雖然你只需要一個圖像。有沒有辦法改善你的答案?如果你可以用一個選項來包裝它,以獲得有限數量的圖像。即'$ returned_images_count = 10;',我的意思是在[這個問題]中部分解釋(https://stackoverflow.com/q/10642777/7735285)。 +'opendir'在分析過程中看起來更快。 – wpcoder 2017-10-30 19:32:59