Вывод рандомных изображений.

Zero-xack
На сайте с 01.07.2009
Offline
114
1464

Есть скрипт, который выводит 4 рандомные изображения из папки на сайт.

<?

$var1 = 2;
$var2 = 7;
$dir = opendir ("./photo");
for ($i = 0; $i <= $var2; $i++)
{
$file = readdir ($dir);
$blya[$i] = "$file";
$random[$i] = rand($var1, $var2);
}
closedir ($dir);
$rand0 = $random[0];
$rand1 = $random[1];
$rand2 = $random[2];
$rand3 = $random[3];
echo <<<HTML
<img src="./photo/$blya[$rand0]" border=1 width=75 height=75>
<img src="./photo/$blya[$rand1]"border=1 width=75 height=75><br>
<img src="./photo/$blya[$rand2]"border=1 width=75 height=75>
<img src="./photo/$blya[$rand3]"border=1 width=75 height=75>
HTML;
?>

Но иногда изображения повторяются, как этого избежать?

Создание сайтов: визитки, порталы, магазины, блоги (/ru/forum/622551)
JTRTA
На сайте с 06.07.2008
Offline
25
#1

есть на пхп такая функция shuffle

и код будет в пять раз короче :)

Дизайн /ru/forum/493415 (/ru/forum/493415) Верстка от 15$ /ru/forum/509339 (/ru/forum/509339) Сайты под ключ aiogino.studio@gmail.com icq: 460146806
Zero-xack
На сайте с 01.07.2009
Offline
114
#2

JTRTA, а насчёт этого можете что-то подсказать? :)

JTRTA
На сайте с 06.07.2008
Offline
25
#3
Zero-xack:
JTRTA, а насчёт этого можете что-то подсказать? :)

а что тут? подсказывать вот вы считали названия файлов в массив $blya (название прям отличное :)) потом делаете shuffle($blia) и получаете случайно перемешанный массив, остается только взять первые 4 названия

Inet-Ark
На сайте с 19.05.2010
Offline
43
#4

Лучше пользоваться чем-то вроде такого:


<?
$num_of_mes = 4; // количество сообщений на странице

$messages_array = file("data.dat");

srand ((double) microtime() * 10000000);
$rand_keys = array_rand($messages_array,$num_of_mes);

for($m=0;$m<$num_of_mes;$m++)
{
if($num_of_mes==1)
{
echo "".$messages_array[$rand_keys]."";
}
else
{
echo "".$messages_array[$rand_keys[$m]]."";
}
}
?>

В файл дата залить теги <img> с путями к изображениям.

MMO-игры и все, что с ними связано (http://gama.su/). Мой сайт с партнерскими программами — мало, но все надежные (http://best-pp.ru/).

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий