3

ディレクトリからランダムな画像を生成する必要があります。私はどちらが単純なのか知っています、

   $dire="images/";
   $images = glob($dire. '*.{jpg,jpeg,png,gif}', GLOB_BRACE);
   $randomImage = $images[array_rand($images)];
   <input type="image" src="<?=$randomImage;?>" alt="<?=$randomImage;?>" />

ただし、2回目をランダムに生成する前に、そのディレクトリの各画像が少なくとも1回は選択されていることを確認する必要があります。上記のコードは、ランダムな画像のみを表示します。

私の考えでは、ランダム画像を配列に格納し、新しく作成されたランダム画像で毎回配列をチェックする必要があります。新しいランダム画像がその配列にない場合は、その画像を表示する必要があります。そうでない場合は、別の画像を見つける必要があります。

上記のことを考えて以下のコードを作成しました。

  $allimgs=array();
  $dire="images/";
  $images = glob($dire. '*.{jpg,jpeg,png,gif}', GLOB_BRACE);
  $randomImage = $images[array_rand($images)];

   if(!in_array($randomImage,$allimgs))
   {
     $allimgs[]=$randomImage;
     <input type="image" src="<?=$randomImage;?>" alt="<?=$randomImage;?>" />
   }

しかし、私はまだこのコードで立ち往生しています。誰かがこのコードを改善するのを手伝ってください?または他のアイデア?

ありがとう。

4

4 に答える 4

0

これらのコードは、フォルダーからランダムな画像を取得するのに役立ちます

       <?php 
            $files = glob('photos/*'); 
               natcasesort($files);      // Display images  
            foreach($files as $file) {     
               echo '<img src="' . $file . '"/>';
            }  
        ?>
于 2013-01-18T14:00:11.963 に答える
0

これが私の答えです。これはうまくいくようです。特定のフォルダー内の画像からランダムに生成された 1 つの画像を生成します。

<?php 
$result = glob('images/*'); 
shuffle($result);
foreach($result as $result) {     
   break;     
}  
?>
<img src="<?php echo "$result"; ?>" />
于 2015-12-09T06:29:22.350 に答える