我写了一个脚本,每天通过电子邮件发送随机图像给我自己,我想做的是设置一个变量$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…