С нами с 10.03.03
Сообщения: 265
Рейтинг: 261
|
Добавлено: 04/05/06 в 21:20 |
Нужет скрипт для ротации текстовых ссылок, случайная ротация. Например, 20 ссылок ротировались рандомном и не повторялись, пока не покажутся все? Есть ли такой скрипт на PHP?
|
|
|
|
С нами с 06.08.03
Сообщения: 243
Рейтинг: 228
|
Добавлено: 04/05/06 в 22:15 |
Если устроит не на РНР а на Перле, могу написАть такой.
|
|
|
|
С нами с 16.10.04
Сообщения: 19
Рейтинг: 8
|
Добавлено: 05/05/06 в 05:58 |
<?php
$file = file("mylinks.txt");
for($i=0;$i<20;$i++){
$mt = mt_rand(0,count($file));
print $file[$mt]."<br>";
}
?>
Но все зависит от количества ссылок в файле. Если их достаточное кол-во то повторятся не будут.
|
|
|
|
zeustraffic.com
С нами с 08.11.02
Сообщения: 3232
Рейтинг: 2611
|
Добавлено: 05/05/06 в 06:19 |
magistrate писал: | <?php
$file = file("mylinks.txt");
for($i=0;$i<20;$i++){
$mt = mt_rand(0,count($file));
print $file[$mt]."<br>";
}
?>
Но все зависит от количества ссылок в файле. Если их достаточное кол-во то повторятся не будут. |
можно проще сделать, чтобы не повторялись, если число ссылок >=20
<?
$file = file("mylinks.txt");
srand(time());
shuffle($file);
for($i=0;$i<20;$i++){
if (i<count($file)) print "$file[$i]<br>";
else print $file[20-$i].'<br>';
}
?>
Правда, я слегка не понял самого техзадания. Если под "не повторялись, пока не покажутся все" имеется в виду то, что при заходе того же серфера ему выводится новый, уникальный набор линков, который еще не показывался, нужно куки пользовать.
|
|
|
|
www.awm-tools.com
С нами с 28.01.04
Сообщения: 2941
Рейтинг: 3056
|
Добавлено: 05/05/06 в 09:10 |
Имелось ввиду, что пользователь заходит первый раз - ему показывается первая ссылка. Заходит второй раз - ему показывается вторая ссылка и т.д.
Заходит 20ый раз - показывается 20ая сслыка
Заходит 21ый раз - показывается 1ая ссылка
|
|
|
|
С нами с 09.02.03
Сообщения: 549
Рейтинг: 195
|
Добавлено: 05/05/06 в 09:24 |
И причем в произвольном порядке, а не подряд.
|
|
|
|
www.awm-tools.com
С нами с 28.01.04
Сообщения: 2941
Рейтинг: 3056
|
Добавлено: 05/05/06 в 09:32 |
Dragon писал: | И причем в произвольном порядке, а не подряд. |
Ааа... ну да... точно
|
|
|
|
zeustraffic.com
С нами с 08.11.02
Сообщения: 3232
Рейтинг: 2611
|
Добавлено: 05/05/06 в 09:58 |
Dragon писал: | И причем в произвольном порядке, а не подряд. |
ну если хочется именно в произвольном порядке (хотя смысл этого постичь не могу), тогда что-то типа
<?
if (isset($_COOKIE['NUM']) && isset($_COOKIE['INDEX']))
{
$num=intval($_COOKIE['NUM']);
$index=intval($_COOKIE['INDEX']);
}
else
{
$num=time();
srand($num)
$index=0;
setcookie('NUM',$num,$num+(60*60*24*30),'/');
}
srand($num);
$file = file('mylinks.txt');
shuffle($file);
print $file[$index];
setcookie('INDEX',++$index,$num+(60*60*24*30),'/');
?>
|
|
|
|
С нами с 10.03.03
Сообщения: 265
Рейтинг: 261
|
Добавлено: 05/05/06 в 13:34 |
Всем огромное спасибо, рейтинг поставил. Буду пробовать
|
|
|
|
no sign
С нами с 25.07.03
Сообщения: 3623
Рейтинг: 1403
|
Добавлено: 05/05/06 в 13:46 |
Zeus, в твоем варианте по-моему куки как раз нахер не нужны
они просто не заюзаются
|
|
|
|
С нами с 26.02.03
Сообщения: 2366
Рейтинг: 987
|
Добавлено: 05/05/06 в 20:28 |
В варианте magistrate, если убрать цикл, то по теории вероятностей при большом количестве заходов вероятность показа всех ссылок будет одинаковая .
|
|
|
|