我想打开一个只包含三张图片之一的网页。我想在任何给定的时间打开随机图像。我的代码不起作用。这就是我所拥有的:
<?php
$imageArray = array(
1 => array("address" => "Daily_Deals_Updated1.png", "alt_text" => "Image 1"),
2 => array("address" => "Daily_Deals_Updated2.png", "alt_text" => "Image 2"),
3 => array("address" => "Daily_Deals_Updated3.png", "alt_text" => "Image 3"),
);
?>
<!DOCTYPE html>
<html>
<head>
<title>Daily Deals</title>
</head>
<body style="width: 100%;">
<div style="margin: 100px auto 0; width: 454px;">
<?php
$randomImageNumber = array_rand($imageArray, 1);
echo "<img src='" . $imageArray[$randomImageNumber]['address']' . " />";
?>
<!-- <img src="Daily Deals_Updated.png" alt="Daily Deals!" /> -->
</div>
</body>
</html>
在此成功之后,我想更改随机性,其中图像仅显示一定比例的时间。例如,1图像45%,1图像45%1图像10%。
网页上没有其他内容,只有一张图片。我想把它全部放在一个脚本上,我不需要包含其他文件。
编辑:有效的代码!
<?php
$images=array(0=>'Daily_Deals_Updated.png',1=>'Daily_Deals_Updated2.png',2=>'Daily_Deals_Updated.png',);
?>
<!DOCTYPE html>
<html>
<head>
<title>Daily Deals</title>
</head>
<body style="width: 100%;">
<div style="margin: 100px auto 0; width: 454px;">
<?php
$r = rand(0, 100) / 100;
if ($r < 0.75) {
$output="<img src=\"Demonstration_Screen_1.png\" >";
print($output);
} else if ($r > 0.76 && $r < 0.94) {
$output="<img src=\"Demonstration_Screen_2.png\" >";
print($output);
} else if ($r > 0.95) {
$output="<img src=\"Demonstration_Screen_3.png\" >";
print($output);
}
?>
</div>
</body>
</html>
答案 0 :(得分:3)
在0和1之间生成一个随机数r
,然后按照下面的伪代码。
if (r < 0.45)
display first image
else if (r < .9)
display second image
else
display third image
这可以扩展到任何数量的情况和每种情况的任何概率。请注意,第一个来自[0, 0.45)
,第二个来自[0.45, 0.9)
,第三个来自[0.9, 1.0]
。您只需要以适合您需要的方式拆分间隔,并且可以使用if / elseif的情况。
答案 1 :(得分:0)
将图像命名为img1,img2,img3等。
然后使用
$img=rand(0,3);
$bg="img$img";