ランダムな画像を毎日自分宛にメールで送信するスクリプトを書いています。私がやりたいのは$image
、/imagesというディレクトリの「ランダムな」画像と等しくなるように変数を設定することです。
画像が正しいかどうかは関係ありません(つまり、日付、画像サイズ、アルファベット名などで実行できる、真にランダムである必要はありません)。
画像は.jpg、.jpeg、.png、.gifの混合物です。
ランダムな画像を変数に割り当てる最良の方法は$image
何ですか?
$images = array('image1.png', 'image2.png', 'image3.jpg');
$selectedimage = rand(0,count($images));
$image = $images[$selectedimage];
このようなものが機能する可能性があります。
$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)];
私がそれをしているなら、私はそれをカードのデッキのように行います。そこでは、デッキ内のすべてのカードが一度使用され、その後、完全なデッキで最初からやり直します。ランダムな画像を引っ張るだけで、同じ画像を背中合わせに戻すことができます。
カードの完全なデッキから始めて、52のいずれかを選びます。カード52を引いたものと交換し、引いたカードを位置52(デッキの一番下)に戻します。
次にカード1-51を引きます。引いたカードをカード51と交換します。
カード1-50を引き、引いたカードをカード50と交換します。
カードが1つになるまで繰り返し、カード1がカード1と交換されたら、ピックカウントを52にリセットします。
もう一度やり直して、カード1-52を選び、カードを#52と交換してから、1-51、1-50 ...