HELP

Статус
В этой теме нельзя размещать новые ответы.

marica

Постоялец
Регистрация
2 Май 2006
Сообщения
71
Реакции
42
Здравствуйте!
у меня на сайте есть такой код вызова:
include($pluginpath[$i]);
if ($pluginname[$i]=="Подборка")
{
$_ran = rand(1,2);
if ($_ran === 1) {
include("./1.txt");
} else {
include("./2.txt");
}
}
echo '</td>
Скрипт вызывает 2 файла - 1.txt и 2.txt
Как могу добавить и 3 файл - 3.txt?
Если сделаю тупо
$_ran = rand(1,2,3);
if ($_ran === 1) {
include("./1.txt");
} else {
include("./2.txt");
} else {
include("./3.txt");
ничего не получаеться :(
Посоветуйте как сделать :thenks:
Цель скрипта - при каждую загрузку страницу что бы показывалась разную информацию.
Инклудить от 1.txt, 2.txt и 3.txt
 
Если ориентироваться на твой алгоритм, то

Код:
# инициализируем генератор случайных чисел
srand(time ^ $$);

#получаем случайное целое число от 1 до 3 
$_ran = int(rand(3))+1;

// инклудим файл  ./$_ran.txt 
include("./". $_ran .".txt");
Только файлы будут подгружаться случайным образом, а не последовательно от 1 до 3

Если необходимо именно последовательно, то можно посмотреть в сторону использования сессий
 
A как все дольжно выглядеть :ah:
Я сделал вот так:

include($pluginpath[$i]);
if ($pluginname[$i]=="Подборка")
{
srand(time ^ $$);
$_ran = int(rand(3))+1;
include("./". $_ran .".txt");
include("./1.txt");
} else {
include("./2.txt");
} else {
include("./3.txt");
}
}
echo '</td>

Но у меня не получилось ничего :(
 
Попробуйте сделать так
Код:
include($pluginpath[$i]);
if ($pluginname[$i]=="Подборка")
{
 srand(time ^ $$);
 $_ran = int(rand(3))+1;
include("./". $_ran .".txt");
}
echo   '</td>';
 
Не получилось :(
 
Может в остальном коде проблемы.
Что выдает? Какие ошибки, сообщения?
 
Вообще, я не понимаю, зачем srand, уже с 4-й версии PHP этого не надо. И rand тоже сожно пользовать диапазоном. То есть получаетяс вот так:
include($pluginpath[$i]);
if ($pluginname[$i]=="Подборка")
{
include("./".rand(1,3).".txt");
}

Если нужен вариант с тремя, но в случайном порядке, тоже не сложно:
include($pluginpath[$i]);
if ($pluginname[$i]=="Подборка")
{
$rands=array();
for ($i=1;$i<=3;$i++){
$rands[]=$i;
}
shuffle($rands); // мешаем
foreach ($rands as $v){
include("./".$v.".txt");
}
}

Кстати, я вот не помню, но мне кажется есть функция выполняющая заполение массива диапазоном, как вот здесь:
for ($i=1;$i<=3;$i++){
$rands[]=$i;
}

Только не помню какая. В любом случае эта конструкция будет работать быстро.
 
Да, немного затупил. Просто голова перлом занята была :D
Для заполнения массива диапазоном можно использовать функцию range.
В данном случае, если необходимо, можно просто записать $rands=array(1,2,3);
 
Вот так сделал и заработало
include($pluginpath[$i]);
if ($pluginname[$i]=="Подборка")
{
$_ran = rand(1,100);
if ($_ran <= 33) {
include("./1.txt");
} elseif($_ran <= 66) {
include("./2.txt");
} else {
include("./3.txt");
}
}
echo '</td>


Спасибо всем! :)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху