0

訪問者の数に応じて画像をエコーする Web ページを作成しようとしています。これまでのコードは、ページへの訪問をカウントし、その数を variable に格納します$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
<?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 に答える
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

単純な :

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 に答える