0

我正在尝试制作一个网页,该网页根据访问者的数量来呼应图像。到目前为止,我的代码计算了对页面的访问并将数字存储在一个变量$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);

任何帮助深表感谢。谢谢 :)

4

7 回答 7

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 通知。

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

于 2012-04-18T14:31:42.293 回答
0

很简单:

for($i=0;$i<$count;$i++) {
    $random = rand(0, 30);
    echo '<img src="'. $random . '.jpg"/>';
}
于 2012-04-18T14:29:10.967 回答
0
for ($i = 1; $i <= $count; $i++)
{
  $random = rand(0, 30);

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

  echo $image;
}
于 2012-04-18T14:30:16.693 回答
0
for($i=1;$i<=$count;$i++) {
   $random = rand(0, 30);
   $image = "<img src='" . $random . ".jpg'/>";
   echo $image;
}
于 2012-04-18T14:30:56.300 回答
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;
}

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

于 2012-04-18T14:31:25.933 回答
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);
于 2012-04-18T14:31:42.277 回答
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);
}

使用上述方法,您将仅获得独特的图像

于 2012-04-18T16:22:21.860 回答