'Компьютерное тестирование',
'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);
?>
Тренажер ОГЭ -
Код пользователя:
';
for ($col = 0; $col < 5; $col++) {
$taskNumber = $row * 4 + $col + 1;
if ($col < 4 && $taskNumber <= $totalTasks) {
$activeClass = ($taskNumber == $initialTask) ? ' class="active"' : '';
echo '|
' . $taskNumber . '
| ';
} else {
echo ' | ';
}
}
echo '';
}
?>