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