如何多次回显图像?

时间:2012-04-18 14:26:35

标签: php image

我正在尝试创建一个网页,根据其拥有的访问者数量来回显图像。到目前为止,我的代码计算了对页面的访问次数,并将数字存储在变量$count中。然后,我在页面$image上回显一个随机图像。现在,我想将页面上显示的随机图像乘以访问量$count。因此,如果有20次访问,则会在页面上回显20个随机图像。任何想法如何做到这一点?

到目前为止,这是我的代码:

$fp = fopen("count.txt", "r");
$count = fread($fp, 1024);
fclose($fp);
$count = $count + 1; 

$random = rand(0, 30);

$image = "<img src='" . $random . ".jpg'/>";

echo $image;

$fp = fopen("count.txt", "w");

fwrite($fp, $count);
fclose($fp);

非常感谢任何帮助。 谢谢:))

7 个答案:

答案 0 :(得分:1)

这应该可以为您提供所需的信息。

for($i = 0; $i < $count; $i++) {
    $random = rand(0, 30);
    $image = "<img src='" . $random . ".jpg'/>";
    echo $image;
}

每次循环都需要重新生成随机数,否则您将重复多次重复相同的图像。现在,如果你想确保获得独特的随机图像,那就更复杂了!

- 编辑

为了获得唯一的随机图像,我通常使用的方法是将每个随机ID添加到循环内的数组中,并每次检查一次。这样的东西(在$random = rand(0,30);行之后插入):

while(in_array($random, $random_used)) {
  $random = rand(0, 30);
}
$random_used[] = $random;

要明确这个的局限性 - 如果你的计数高于使用的随机范围,你将在这里达到无限循环。此外,您应该初始化数组(在for循环之外),例如:

$random_used = array();

...只是为了停止PHP通知。

这可能是一种更简单的方法,但这是我通常使用的方法。

答案 1 :(得分:0)

简单如下:

for($i=0;$i<$count;$i++) {
    $random = rand(0, 30);
    echo '<img src="'. $random . '.jpg"/>';
}

答案 2 :(得分:0)

for ($i = 1; $i <= $count; $i++)
{
  $random = rand(0, 30);

  $image = "<img src='" . $random . ".jpg'/>";

  echo $image;
}

答案 3 :(得分:0)

for($i=1;$i<=$count;$i++) {
   $random = rand(0, 30);
   $image = "<img src='" . $random . ".jpg'/>";
   echo $image;
}

答案 4 :(得分:0)

$count是访问次数。做这样的事情:

$count = 20; // I suppose that there are 20 visitors
for($i = 0; $i < $count; $i++) {
    $random = rand(0, 30);
    $image = "<img src='" . $random . ".jpg'/>";
    echo $image;
}

输出图像并在循环中定义随机数。

答案 5 :(得分:0)

不要使用旧文件处理。

$count = file_get_contents("count.txt") + 1;

$a = array();

for($i = 0; $i < $count; $i++) {

    $random = rand(0, 30);

    while (in_array($random, $a) && count($a) <= 30) {
        $random = rand(0, 30);
    }

    array_push($a, $random);

    $image = "<img src='" . $random . ".jpg'/>";

    echo $image;

}

file_put_contents("count.txt", $count);

答案 6 :(得分:0)

<?php
$images = range(0, 12);
for($i = 0; $i < $count; $i++) {
    // you shoulod check whether count is not above the number of available images
    $image = array_rand($images, 1);

    echo "<img src='" . $images[$image] . ".jpg'/>";

    unset($images);
}

使用上述内容,您将只获得独特的图像