Tôi tự hỏi về cách "tốt hơn" để kéo một hình ảnh ngẫu nhiên từ một thư mục.PHP kéo hình ảnh ngẫu nhiên từ thư mục
Giống như nói, để có php chỉ cần chọn một hình ảnh ngẫu nhiên từ thư mục thay vì tìm kiếm và tạo một mảng của nó.
ở đây là làm thế nào tôi làm điều đó ngày nay
<?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 = '';
}
?>
** câu trả lời của bạn rất hay và ngắn! ** nhưng có vấn đề! nếu thư mục hình ảnh chứa một số lượng lớn hình ảnh (1K), [scandir] (http://php.net/manual/en/function.scandir.php) sẽ tải tất cả chúng vào một mảng. Trong khi bạn chỉ cần một hình ảnh. Có cách nào để cải thiện câu trả lời của bạn không? Và nếu bạn có thể bọc nó trong một chức năng với tùy chọn để có được một số lượng giới hạn của hình ảnh. tức là '$ return_images_count = 10;', ý tôi là một phần được giải thích trong [câu hỏi này] (https://stackoverflow.com/q/10642777/7735285). + 'opendir' trông nhanh hơn trong lược tả. – wpcoder