0

ランダムな画像を毎日自分宛にメールで送信するスクリプトを書いています。私がやりたいのは$image、/imagesというディレクトリの「ランダムな」画像と等しくなるように変数を設定することです。

画像が正しいかどうかは関係ありません(つまり、日付、画像サイズ、アルファベット名などで実行できる、真にランダムである必要はありません)。

画像は.jpg、.jpeg、.png、.gifの混合物です。

ランダムな画像を変数に割り当てる最良の方法は$image何ですか?

4

3 に答える 3

2
 $images = array('image1.png', 'image2.png', 'image3.jpg');

 $selectedimage = rand(0,count($images));

 $image = $images[$selectedimage];
于 2013-03-03T20:32:23.170 に答える
0

このようなものが機能する可能性があります。

$files = scandir('/images');
$images = array();
foreach ($files as $file) {
    $ext = pathinfo($file, PATHINFO_EXTENSION);
    switch($ext) {
    case 'jpg':
    case 'png':
    case 'gif':
        $images[] = $file;
        break;
    }
}

$image = $images[array_rand($images)];
于 2013-03-03T20:39:29.157 に答える
0

私がそれをしているなら、私はそれをカードのデッキのように行います。そこでは、デッキ内のすべてのカードが一度使用され、その後、完全なデッキで最初からやり直します。ランダムな画像を引っ張るだけで、同じ画像を背中合わせに戻すことができます。

カードの完全なデッキから始めて、52のいずれかを選びます。カード52を引いたものと交換し、引いたカードを位置52(デッキの一番下)に戻します。

次にカード1-51を引きます。引いたカードをカード51と交換します。

カード1-50を引き、引いたカードをカード50と交換します。

カードが1つになるまで繰り返し、カード1がカード1と交換されたら、ピックカウントを52にリセットします。

もう一度やり直して、カード1-52を選び、カードを#52と交換してから、1-51、1-50 ...

于 2013-03-03T21:10:41.370 に答える