【发布时间】:2012-08-06 05:53:10
【问题描述】:
我必须从目录生成随机图像。我知道哪个很简单,
$dire="images/";
$images = glob($dire. '*.{jpg,jpeg,png,gif}', GLOB_BRACE);
$randomImage = $images[array_rand($images)];
<input type="image" src="<?=$randomImage;?>" alt="<?=$randomImage;?>" />
但我必须确保该目录中的每个图像在随机生成第二次之前至少选择一次。上面的代码只会显示任何随机图像。
我的想法是,我必须将随机图像存储在一个数组中,并每次使用新创建的随机图像检查数组。如果新的随机图像不在该数组中,我需要显示该图像,否则我必须找到另一个图像。
我根据上述想法创建了以下代码。
$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;?>" />
}
但我仍然坚持使用此代码。有人请帮助改进此代码吗?或任何其他想法?
谢谢。
【问题讨论】:
-
显示后需要图片路径吗?每次使用图像时,您都可以将它们从
$images数组中删除。 -
你的意思是显示一次所有的图片,还是只显示一张图片,刷新页面后换另一张?