Forum Webscript.Ru

Программирование => PHP => Тема начата: Guard от 29 Августа 2002, 16:13:34

Название: "Случайный ввод"
Отправлено: Guard от 29 Августа 2002, 16:13:34
$fil = file("quest.txt");

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

Как сделать, чтобы вместо quest.txt "случайно" (из того, что я выше определю) вписывалось имя файла? То есть выбиралось случайно.
Название: "Случайный ввод"
Отправлено: Дмитрий Попов от 29 Августа 2002, 16:19:45
В смысле? Вам нужен алгоритм создания случайных чисел/слов?
Название: "Случайный ввод"
Отправлено: Maniac от 29 Августа 2002, 16:45:59

$files=array(\'file1\',\'file2\',\'file3\');
$name=$files[rand(0,count($files)-1)];
Название: "Случайный ввод"
Отправлено: Guard от 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 от 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]);
Название: "Случайный ввод"
Отправлено: Maniac от 04 Сентября 2002, 16:49:34
Цитировать
ПОМОГИ РАЗОБРАТЬСЯ.

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