$id = (int) $matches[1];
 // Crappy continue after break scheme
 if ($id === $startId) {
     $skip = false;
 }
 if ($skip === true) {
     $log->write("Skipping {$id}");
     flush();
     continue;
 }
 $class = explode('</td>', $class);
 foreach ($class as &$entry) {
     $entry = StringUtil::textFromHtml($entry);
 }
 $page = $curl->fetchPageAndLogin(OCI_SERVER . "/oci/resultDetail.jsp?course={$id}&term={$term}", null, false, true);
 $courseInfo = extractCourseInfo($page);
 $courseNames = new MysqlTable($mysqli, 'course_names');
 $existingEvaluationId = false;
 foreach ($courseInfo['course_codes']['listings'] as &$listing) {
     $courseNames->retrieve(array('subject', 'number', 'section'), array($listing['subject'], $listing['number'], $courseInfo['course_codes']['section']), array('course_id'));
     if ($courseNames->resultsExist) {
         $existingEvaluationId = $courseNames->info['course_id'];
         break;
     }
 }
 $courses = new MysqlTable($mysqli, 'courses');
 $infoToSet = extractFieldsFromArray(array('title', 'description', 'requirements', 'extra_info'), $courseInfo);
 $infoToSet['exam_group'] = $courseInfo['exam']['group'];
 if ($existingEvaluationId) {
     $infoToSet['id'] = $existingEvaluationId;
 }
function extractEvaluationInfo($page, $professors, $type)
{
    $evaluationInfo = array();
    $evaluationInfo['courses'] = extractCourseInfo($page);
    $evaluationInfo['season'] = $season;
    $evaluationInfo['professors'] = professorsFromField($professors);
    foreach ($radioButtonPages as $columnPrefix => &$pageType) {
        $page = $curl->fetchPageAndLogin("https://faculty.yale.edu/viewevals/Search/ViewAnswersByQuestion?subType=all&ap=0&qid={$qidPrefixes[$type]}{$pageType['qid_number']}&na=10000", null, false, true);
        if (!empty($page)) {
            $responses = getRadioCheckedFrequenciesInPage($pageType['labels'], $page);
            foreach ($responses as $columnSuffix => &$response) {
                $evaluationInfo[$columnPrefix . $columnSuffix] = $response;
            }
        }
    }
    $evaluationInfo['comments'] = array();
    foreach ($commentPages as &$qidNumber) {
        $page = $curl->fetchPageAndLogin("https://faculty.yale.edu/viewevals/Search/ViewAnswersByQuestion?subType=all&ap=0&qid={$qidPrefixes[$type]}{$qidNumber}&na=10000", null, false, true);
        if (empty($page)) {
            continue;
        }
        $comments = getCommentsFromPage($page);
        if (!empty($comments)) {
            $evaluationInfo['comments'][(int) $qidNumber] = $comments;
        }
    }
}