PHP 页面在启动时加载随机图像


PHP page load Random Image on Startup

我想打开一个只包含三张图片之一的网页。 我希望在任何给定时间打开一个随机图像。 我的代码不起作用。 这是我所拥有的:

 <?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";