2012-04-18 3 views
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); 

Любая помощь очень ценится. Спасибо :)

+0

Похоже, домашнее задание. голосование закрывается –

ответ

0

Как просто:

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

Это тоже не сработает. –

+0

Я что-то упускаю? Как это не сработает? – Brad

+0

См. Мои объяснения в моем ответе. Это будет показывать одно и то же изображение каждый раз. –

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

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

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

Выведите изображение и определите случайное число в цикле.

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); 
1

Это должно дать вам то, что вы ищете.

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

Вам необходимо регенерировать случайное число, каждый раз через петлю, в противном случае вы получите то же самое изображение повторяется несколько раз. Теперь, если вы хотите удостовериться, что получаете уникальные случайные изображения, это немного сложнее!

- редактировать

Чтобы получить уникальные случайные изображения, метод я обычно используется для добавления каждого случайного идентификатора массива внутри цикла, и убедитесь, что каждый раз. Что-то вроде этого (вставляется сразу после $random = rand(0,30); линии):

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

Чтобы быть ясно, об ограничениях этого - если у вас есть отсчет выше случайного диапазона в использовании, вы собираетесь ударить в бесконечный цикл Вот. Кроме того, вы должны инициализировать массив (за пределами вашей для цикла), таких как:

$random_used = array(); 

... просто остановить PHP уведомлений.

Возможно, существует более простой способ сделать это, но это метод, который я обычно использовал.

+0

Спасибо за ваш ответ, очень полезно :) из интереса, знаете ли вы, что лучший способ получить уникальные случайные изображения будет? –

+0

Я расширил ответ, чтобы ответить на это. –

+0

Спасибо, Стивен, оцените это. –

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); 
} 

Используя выше, вы получите уникальные изображения только

Смежные вопросы