我想打开一个只包含三张图片之一的网页。 我希望在任何给定时间打开一个随机图像。 我的代码不起作用。 这是我所拥有的:
<?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 和 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 案例。
将图像命名为 img1、img2、img3 等。
然后使用
$img=rand(0,3);
$bg="img$img";