'Компьютерное тестирование', 'subject' => 'Информатика', 'tasksDir' => 'assets/exam/inf/', 'schoolName' => 'МБОУ Тойкинская СОШ', 'timeLimit' => 120, 'totalTasks' => 20 ]; // Проверяем существование папки с заданиями $tasksDir = rtrim($settings['tasksDir'], '/') . '/'; if (!is_dir($tasksDir)) { die("Ошибка: Папка с заданиями не найдена: $tasksDir"); } // Генерируем случайный код пользователя $userCode = sprintf('%08d', mt_rand(0, 99999999)); // Функция для получения списка файлов в папке function getTaskFiles($folder) { $files = []; if (is_dir($folder)) { $dir = scandir($folder); foreach ($dir as $file) { if ($file != '.' && $file != '..' && pathinfo($file, PATHINFO_EXTENSION) == 'txt') { $files[] = $file; } } } sort($files); return $files; } // Функция для получения случайного файла задания function getRandomTaskFile($taskNumber, $tasksDir) { static $selectedFiles = []; if (isset($selectedFiles[$taskNumber])) { return $selectedFiles[$taskNumber]; } $taskFolder = $tasksDir . $taskNumber . '/'; $files = getTaskFiles($taskFolder); if (empty($files)) { return null; } $randomFile = $files[array_rand($files)]; $selectedFiles[$taskNumber] = [ 'file' => $randomFile, 'path' => $taskFolder . $randomFile ]; return $selectedFiles[$taskNumber]; } // Получаем начальное задание (номер 3) $initialTask = 3; $initialTaskFile = getRandomTaskFile($initialTask, $tasksDir); $initialTaskContent = ''; if ($initialTaskFile && file_exists($initialTaskFile['path'])) { $initialTaskContent = htmlspecialchars(file_get_contents($initialTaskFile['path']), ENT_QUOTES, 'UTF-8'); } else { $initialTaskContent = 'Задание не найдено. Проверьте наличие файлов в папке: ' . $tasksDir . $initialTask . '/'; } // Подготавливаем данные о файлах для JavaScript $tasksData = []; for ($i = 1; $i <= $settings['totalTasks']; $i++) { $taskFile = getRandomTaskFile($i, $tasksDir); if ($taskFile) { $tasksData[$i] = $taskFile; } } $tasksDataJson = json_encode($tasksData, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); ?> Тренажер ОГЭ - <?php echo htmlspecialchars($settings['subject']); ?>
Осталось:
мин.
Код пользователя:
Задания
'; for ($col = 0; $col < 5; $col++) { $taskNumber = $row * 4 + $col + 1; if ($col < 4 && $taskNumber <= $totalTasks) { $activeClass = ($taskNumber == $initialTask) ? ' class="active"' : ''; echo ''; } else { echo ''; } } echo ''; } ?>
' . $taskNumber . '
Приложения

Задание №

Up