1

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

 <?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>
4

2 回答 2

3

生成一个r介于 0 和 1 之间的随机数,然后按照下面的伪代码进行操作。

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 案例。

于 2012-06-04T02:34:56.830 回答
0

将图像命名为 img1、img2、img3 等。

然后使用

$img=rand(0,3);
$bg="img$img";
于 2012-06-04T03:06:27.003 回答