open($dir . '/' . $nomes[$i]); if ($res === TRUE) { $zip->extractTo('temp/'); $zip->close(); } } $dir = 'temp'; $files1 = scandir($dir); if (count($files1) < 3) { return null; } $arquivo = ""; for ($i = 0; $i < count($files1); $i++) { if ($files1[$i] == "." || $files1[$i] == "..") continue; $exp = explode("-", $files1[4]); $fi = ""; for ($j = 0; $j < count($exp) - 1; $j++) { $fi .= $exp[$j]; if ($j < (count($exp) - 3)) { $fi .= "-"; } } if (strpos($fi, $exercicio) !== false) { $arquivo = $files1[$i]; } else { unlink($dir . '/' . $files1[$i]); } } return $arquivo; } function pegarLogsDoAlunoComoString ($curso, $aluno, $exercicio) { $registros = abrirArquivoCSV($_GET['curso'], false); $aluno_raw = str_replace(" ", "_", $aluno); $exercicio_raw = str_replace("_", " ", $curso); foreach ($registros as $registro) { //if (str_contains($registro)) } // $handle = fopen("temp/" . $arquivo, "r"); // $inicio = false; // $string_final = ""; // if ($handle) { // while (($line = fgets($handle)) !== false) { // if ( strpos($line, "::logs::") !== false) { // $inicio = true; // print $line; // break; // } // if ($inicio) { // $ex = explode(",", $line); // if (count($ex) > 3) { // $string_final .= $ex[1] . "," . $ex[2] . ",1,0\\n"; // } // } // } // fclose($handle); // } else { // echo "ERRO AO LER O ARQUIVO"; // } // print 'a'. $string_final; // exit; // return $string_final; } function abrirArquivoCSV ($curso, $delete_temp = true) { $zip = new ZipArchive; $dir = 'cursos/' . $curso; $files1 = scandir($dir); $exercicios = array(); if (count($files1) < 3) { return null; } $temp_folder = 'temp/' . $curso; for ($i = 0; $i < count($files1); $i++) { if ($files1[$i] == "." || $files1[$i] == "..") continue; $res = $zip->open($dir . '/' . $files1[$i]); if ($res === TRUE) { $zip->extractTo($temp_folder); $zip->close(); } } if (!file_exists($temp_folder . '/index.csv')) { return null; } $final_array = array(); $file = fopen($temp_folder . '/index.csv', 'r'); while (($line = fgetcsv($file)) !== FALSE) { array_push($final_array, $line); } fclose($file); if ($delete_temp) deleteFolderAndFiles($temp_folder); return $final_array; } function listarAlunos ($curso) { $registros = abrirArquivoCSV($curso); $nomes = array(); foreach ($registros as $registro) { if ($registro[0] == 'submissionid') continue; $nome = str_replace("_", " ", explode("/", $registro[1])[1]); array_push($nomes, $nome); } $nomes = array_unique($nomes); asort($nomes); return $nomes; } function listarExercicios ($curso) { $registros = abrirArquivoCSV($curso); $exercicios = array(); foreach ($registros as $registro) { if ($registro[0] == 'submissionid') continue; $nome = str_replace("_", " ", explode("/", $registro[1])[0]); array_push($exercicios, $nome); } return array_unique($exercicios); } function instrucoes () { return "
Instruções para inserir novos logs para análise:
Atenção! Não altere nem o nome do arquivo gerado pelo iTarefa, pois o sistema segue o mesmo padrão.
Essa versão é incompatível com arquivos gerados pelo iTarefa antes de 2020.
"; } ?>