PHP kullanarak dizinden rasgele görüntü almak için nasıl

6 Cevap

Ben images / ipuçları bir dizin çağırdı.

Şimdi bu dizine ben değiştirebilirim çok fotoğraf var.

Ben PHP komut dosyası, dizin okumak için görüntüleri bulmak için, ve bu görüntülerin üzerinden rasgele bir görüntü almak bulunmasını istiyorum.

Bunun nasıl herhangi bir fikir?

6 Cevap

$imagesDir = 'images/tips/';

$images = glob($imagesDir . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);

$randomImage = $images[array_rand($images)]; // See comments

Birden fazla 1 almak için array_rand() için 2. bir argüman gönderebilirsiniz.

$images = glob('images/tips/*');
return $images[rand(0, count($images) - 1)];

Ancak, bu aynı görüntü arka arkaya iki kez aldı olmadığından emin değildir.

Basit:

$directory = "medias/photos/";
$img = glob($directory . "*.jpg");
shuffle($img);

Sen opendir(), dizideki her dosya depolama, bu dizinden dosya okumak için kullanabilirsiniz. Sonra diziden bir öğeyi seçin dizi anahtarları tekabül min ve max rand() kullanın.

<?php
   foreach (glob("gallery/*") as $filename) {
         echo '<li><a href="'.$filename.'" title=""><img src="'.$filename.'" alt="" /></a> </li>';      
       }
?>

Bu kod bak sizin için yararlı olmadığını kesinlikle onu kullanabilirsiniz. Bu klasördeki tüm dosyaları yükler ve yukarıdaki biçimde yazdırır. Bu kodu lightbox ile kullanmak için yaptı.

Görüntülerle klasöre yükleyin:

$folder = opendir(images/tips/);

Dizinindeki dosya / görüntülerin dışarı tablo oluşturmak:

$i = 0;
while(false !=($file = readdir($folder))){
if($file != "." && $file != ".."){
    $images[$i]= $file;
    $i++;
    }
}

Rastgele seçin:

$random_img=rand(0,count($images)-1);

Sayfa göster:

echo '<img src="images/tips'.$images[$random_img].'" alt="" />';

Umarım yardımcı olur. Tabii <?php ?> içine alın.