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

时间:2012-06-04 02:30:39

标签: php image random

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

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

2 个答案:

答案 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";