Автор Тема: "Случайный ввод"  (Прочитано 3146 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Guard

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 147
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.rowing-don.narod.ru
"Случайный ввод"
« : 29 Августа 2002, 16:13:34 »
$fil = file("quest.txt");

Вот так у меня в скрипте определено к какому файлу обращаться.

Как сделать, чтобы вместо quest.txt "случайно" (из того, что я выше определю) вписывалось имя файла? То есть выбиралось случайно.

Оффлайн Дмитрий Попов

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 264
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.programmist.spb.ru
"Случайный ввод"
« Ответ #1 : 29 Августа 2002, 16:19:45 »
В смысле? Вам нужен алгоритм создания случайных чисел/слов?
 За Родину! За Россию!
SendMail для любого хостинга.

Оффлайн Maniac

  • Ума нет - считай коллега
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 844
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
"Случайный ввод"
« Ответ #2 : 29 Августа 2002, 16:45:59 »

$files
=array(\'file1\',\'file2\',\'file3\');
$name=$files[rand(0,count($files)-1)];
TANSTAAFL

Оффлайн Guard

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 147
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.rowing-don.narod.ru
"Случайный ввод"
« Ответ #3 : 04 Сентября 2002, 12:42:00 »
Maniac               include("vote/config.txt");
            $date = date("d.m");
            $ip   = $REMOTE_ADDR;
            if(!$voted): form(""); else: vote(); endif;
            
            function form($error) // вывод формы голосования
{
    $files = array(\'quest.txt\',\'quest2.txt\',\'quest3.txt\');
   $fil = $files[rand(0,count($files)-1)];
   //$fil = file("vote/quest.txt");
   print " $fil[0]            ";
   for ($i=1; $i < sizeof($fil); $i++)
   {
      $temp = explode("=",$fil[$i]);
      print "
\\n";
   }
   print "   
$temp[0]

$error
";
   
}
            ?>
Вот эта штука должна выводить форму голосования.
Если раскомментировать строку там гд $fil и у брать две строки предлорженные тобой - все ок (только не случайным образом выводится).

А так как ты предложил она вообще ничего не выводит.
ПОМОГИ РАЗОБРАТЬСЯ.
Плиз!!!

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
"Случайный ввод"
« Ответ #4 : 04 Сентября 2002, 14:17:47 »
Вместо этого:
Цитировать
$files = array(\'quest.txt\',\'quest2.txt\',\'quest3.txt\');
$fil = $files[rand(0,count($files)-1)];
//$fil = file("vote/quest.txt");

Вот:
$files = array(\'quest.txt\',\'quest2.txt\',\'quest3.txt\');
mt_srand(time()+(double)microtime()*1000000);
$fil=mt_rand(0,sizeof($files)-1);
$fil = file("vote/".$files[$fil]);
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн Maniac

  • Ума нет - считай коллега
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 844
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
"Случайный ввод"
« Ответ #5 : 04 Сентября 2002, 16:49:34 »
Цитировать
ПОМОГИ РАЗОБРАТЬСЯ.

Мдя... А ты сам пробовал?
Скажу сразу: приведенный мной пример - работоспособен. Это в смысле, что print $files[rand(0,count($files)-1)] выдает случайную запись из массива.
Кстати,
Alexandr
По уверениям разработчиков, в PHP версий старше 4.2.0 рэндом сидить не надо.
Дык вот, Guard идем построчно по твоему скрипту, начиная с момента случайного выбора.
Итак, в переменную $fil получаем имя файла - усе пучком.
Затем печатаем содержимое переменной $fil, а рядом с ним - квадратные скобки (ты уверен, что хотел этого?)
Далее начинаем цикл от 1 до количества элементов в переменной $fil минус один. Которое (количество) равно 1. Цикл, естественно, не выполняется.
Будем дальше разбираться, или ты сам понял всю глубину своего падения?
Код, который привел ты работать не должен. Поэтому и не работает.
TANSTAAFL

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28