本文整理汇总了PHP中Process::encodeProcess方法的典型用法代码示例。如果您正苦于以下问题:PHP Process::encodeProcess方法的具体用法?PHP Process::encodeProcess怎么用?PHP Process::encodeProcess使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Process
的用法示例。
在下文中一共展示了Process::encodeProcess方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: postProcess
//.........这里部分代码省略.........
if ($mask->getCorrect() === '1' && !$foundInStudentsAnswer) {
$allcorrect = false;
break;
} elseif ($mask->getCorrect() === '0' && $foundInStudentsAnswer) {
$allcorrect = false;
break;
}
}
}
if ($allcorrect) {
$points = $pro->getExercise()->getMaxPoints();
}
// save the marking
#region Form to PDF
if ($pro->getMarking() === null) {
$raw = $pro->getRawSubmission();
$exerciseName = '';
if ($raw !== null) {
$exerciseName = $raw->getExerciseName();
}
$answer = "";
if ($forms->getType() == 0) {
$answer = $formdata->getChoices()[0]->getText();
}
if ($forms->getType() == 1) {
$answer = $this->ChoiceIdToText($formdata->getChoices()[0]->getText(), $forms->getChoices());
}
if ($forms->getType() == 2) {
foreach ($formdata->getChoices() as $chosen) {
$answer .= $this->ChoiceIdToText($chosen->getText(), $forms->getChoices()) . '<br>';
}
}
$answer2 = "";
foreach ($forms->getChoices() as $chosen) {
if ($chosen->getCorrect() === '1') {
$answer2 .= $chosen->getText() . '<br>';
}
}
$Text = "<h1>AUFGABE {$exerciseName}</h1>" . "<hr>";
if ($forms->getTask() !== null && trim($forms->getTask()) != '') {
$Text .= "<p>" . "<h2>Aufgabenstellung:</h2>" . $forms->getTask() . "</p>";
}
$Text .= "<p>" . "<h2>Antwort:</h2>" . "<span style=\"color: " . ($points === 0 ? 'red' : 'black') . "\">" . $answer . "</span></p>";
if ($points === 0) {
$Text .= "<p>" . "<h2>Lösung:</h2><span style=\"color: green\">" . $answer2 . "</span></p>";
}
if ($forms->getSolution() !== null && trim($forms->getSolution()) != '') {
$Text .= "<p>" . "<h2>Lösungsbegründung:</h2>" . $forms->getSolution() . "</p>";
}
$Text .= "<p style=\"text-align: center;\">" . "<h2><span style=\"color: red\">{$points}P</span></h2>" . "</p>";
$pdf = Pdf::createPdf($Text);
//echo Pdf::encodePdf($pdf);return;
$result = Request::routeRequest('POST', '/pdf', array(), Pdf::encodePdf($pdf), $this->_pdf, 'pdf');
// checks the correctness of the query
if ($result['status'] >= 200 && $result['status'] <= 299) {
$pdf = File::decodeFile($result['content']);
$pdf->setDisplayName($exerciseName . '.pdf');
$pdf->setTimeStamp($timestamp);
$pdf->setBody(null);
$submission = $pro->getSubmission();
if ($submission === null) {
$submission = $pro->getRawSubmission();
}
$studentId = $pro->getRawSubmission() !== null ? $pro->getRawSubmission()->getStudentId() : null;
if ($studentId === null) {
$studentId = $pro->getSubmission() !== null ? $pro->getSubmission()->getStudentId() : null;
}
$marking = Marking::createMarking(null, $studentId, null, null, null, null, 3, $points, $submission->getDate() !== null ? $submission->getDate() : time());
if (is_object($submission)) {
$marking->setSubmission(clone $submission);
}
$marking->setFile($pdf);
$pro->setMarking($marking);
} else {
$res[] = null;
$this->app->response->setStatus(409);
continue;
}
}
#endregion
$rawSubmission = $pro->getRawSubmission();
$rawFile = $rawSubmission->getFile();
$rawFile->setBody(Form::encodeForm($formdata), true);
$rawSubmission->setFile($rawFile);
$rawSubmission->setExerciseId($eid);
$pro->setRawSubmission($rawSubmission);
$res[] = $pro;
continue;
}
}
}
$this->app->response->setStatus(409);
$res[] = null;
}
if (!$arr && count($res) == 1) {
$this->app->response->setBody(Process::encodeProcess($res[0]));
} else {
$this->app->response->setBody(Process::encodeProcess($res));
}
}
示例2: postSubmission
//.........这里部分代码省略.........
}
if (!$found && count($exerciseFileTypes) > 0) {
$submission->addMessage("falscher Dateityp \nGefunden: " . $mimeType . " ." . $foundExtension . "\nErlaubt: " . implode(',', $types));
$res[] = $submission;
$this->app->response->setStatus(409);
unlink($filePath);
continue;
}
unlink($filePath);
}
} else {
if ($result2['status'] != 404) {
$submission->addMessage("Interner Fehler");
$res[] = $submission;
$this->app->response->setStatus(409);
continue;
}
}
// process submission
if ($processors !== null) {
if (!is_array($processors)) {
$processors = array($processors);
}
foreach ($processors as $pro) {
$component = $pro->getTarget();
if ($process->getExercise() === null) {
$process->setExercise($pro->getExercise());
}
$process->setParameter($pro->getParameter());
$process->setAttachment($pro->getAttachment());
$process->setTarget($pro->getTarget());
$process->setWorkFiles($pro->getWorkFiles());
//echo Process::encodeProcess($process)."_______";// return;
$result = Request::post($component->getAddress() . '/process', array(), Process::encodeProcess($process));
//echo $result['content'].'_______';
if ($result['status'] >= 200 && $result['status'] <= 299) {
$process = Process::decodeProcess($result['content']);
} else {
$fail = true;
$submission->addMessage("Beim Verarbeiten der Einsendung ist ein Fehler aufgetreten");
if (isset($result['content'])) {
$content = Process::decodeProcess($result['content']);
$submission->setStatus($content->getStatus());
$submission->addMessages($content->getMessages());
}
break;
}
}
}
if ($fail) {
if (isset($submission)) {
$submission->setFile(null);
}
$res[] = $submission;
$this->app->response->setStatus(409);
continue;
}
// upload submission
$uploadSubmission = $process->getSubmission();
if ($uploadSubmission === null) {
$uploadSubmission = $process->getRawSubmission();
if ($uploadSubmission->getFile() != null) {
$file = $uploadSubmission->getFile();
if ($file->getDisplayName() == null) {
$file->setDisplayName($submission->getExerciseName());
}
示例3: postProcess
//.........这里部分代码省略.........
while ($i < count($parameter)) {
if (@preg_match($test, DefaultNormalizer::normalizeText($choice->getText())) !== false) {
break;
}
$test .= ' ' . $parameter[$i];
$i++;
}
$match = @preg_match($test, DefaultNormalizer::normalizeText($choice->getText()));
if ($match === false) {
$fail = true;
$pro->addMessage('"' . $test . '" ist kein gültiger regulärer Ausdruck.');
} elseif ($match == false) {
$fail = true;
$pro->addMessage('"' . $choice->getText() . '" entspricht nicht dem regulären Ausdruck "' . $test . '".');
}
break;
}
}
}
}
if ($fail) {
// received submission isn't correct
$pro->setStatus(409);
$res[] = $pro;
$this->app->response->setStatus(409);
continue;
}
// save the submission
#region Form to PDF
if ($pro->getSubmission() === null) {
$raw = $pro->getRawSubmission();
$exerciseName = '';
if ($raw !== null) {
$exerciseName = $raw->getExerciseName();
}
$answer = "";
if ($forms->getType() == 0) {
$answer = $formdata->getChoices()[0]->getText();
}
if ($forms->getType() == 1) {
$answer = $this->ChoiceIdToText($formdata->getChoices()[0]->getText(), $forms->getChoices());
}
if ($forms->getType() == 2) {
foreach ($formdata->getChoices() as $chosen) {
$answer .= $this->ChoiceIdToText($chosen->getText(), $forms->getChoices()) . '<br>';
}
}
$Text = "<h1>AUFGABE {$exerciseName}</h1>" . "<hr>";
if ($forms->getTask() !== null && trim($forms->getTask()) != '') {
$Text .= "<p>" . "<h2>Aufgabenstellung:</h2>" . $forms->getTask() . "</p>";
}
$Text .= "<p>" . "<h2>Antwort:</h2>" . $answer . "</p>";
$pdf = Pdf::createPdf($Text);
$pdf->setText($Text);
//echo Pdf::encodePdf($pdf);return;
$result = Request::routeRequest('POST', '/pdf', array(), Pdf::encodePdf($pdf), $this->_pdf, 'pdf');
// checks the correctness of the query
if ($result['status'] >= 200 && $result['status'] <= 299) {
$pdf = File::decodeFile($result['content']);
$pdf->setDisplayName($exerciseName . '.pdf');
$pdf->setTimeStamp($timestamp);
$pdf->setBody(null);
if (is_object($pro->getRawSubmission())) {
$submission = clone $pro->getRawSubmission();
} else {
$submission = new Submission();
}
$submission->setFile($pdf);
$submission->setExerciseId($eid);
$pro->setSubmission($submission);
} else {
$pro->setStatus(409);
$res[] = $pro;
$this->app->response->setStatus(409);
continue;
}
}
#endregion
$rawSubmission = $pro->getRawSubmission();
$rawFile = $rawSubmission->getFile();
$rawFile->setBody(Form::encodeForm($formdata), true);
$rawSubmission->setFile($rawFile);
$rawSubmission->setExerciseId($eid);
$pro->setRawSubmission($rawSubmission);
$pro->setStatus(201);
$res[] = $pro;
continue;
}
}
}
$this->app->response->setStatus(409);
$pro->setStatus(409);
$res[] = $pro;
}
if (!$arr && count($res) == 1) {
$this->app->response->setBody(Process::encodeProcess($res[0]));
} else {
$this->app->response->setBody(Process::encodeProcess($res));
}
}
示例4: postProcess
//.........这里部分代码省略.........
exec('(javac ' . $param . ') 2>&1', $output, $return);
chdir($pathOld);
if ($return == 0) {
// wenn wir als Antwort eine 0 erhalten, konnte alles problemlos
// kompiliert werden
$pro->setStatus(201);
} else {
// ansonsten gab es ein Problem, also einen Fehlerstatus zurückgeben
$pro->setStatus(409);
// die Antwort des Compilers muss nun noch Studentengerecht zusammengebaut werden
// für die Fehlermeldung
if (count($output) > 0) {
$text = '';
$outputList = array();
// entfernt störende Zeichen
foreach ($output as $out) {
$out = trim(trim($out), '^');
if ($out == '') {
continue;
}
$outputList[] = $out;
}
// nur die ersten 7 Fehler und die Zusammenfassung am Ende (2 Zeilen) behalten
if (count($outputList) > 10) {
$outputList[7] = '...';
for ($i = 8; $i < count($outputList) - 2; $i++) {
$outputList[$i] = '';
}
}
// nur nichtleere Ausgabezeilen werden zur Aufgabe zusammengefasst
foreach ($outputList as $out) {
if ($out == '') {
continue;
}
$text .= $out . "\n";
}
// die fertige Fehlermeldung dem Prozessobjekt übergeben
$pro->addMessage($text);
}
$this->app->response->setStatus(409);
}
} elseif ($type == 'custom') {
// es können natürlich auch individuelle Programmaufrufe damit konfiguriert werden
// dabei liefern die Parameter auch das aufzurufende Programm mit (Gefahr???)
$output = array();
$return = '';
$param = implode(' ', $parameter);
if ($param != '') {
$param = str_replace('$file', $filePath . '/' . $fileName, $param);
} else {
$param = $filePath . '/' . $fileName;
}
exec('(' . $param . ') 2>&1', $output, $return);
if ($return == 0) {
// nothing
$pro->setStatus(201);
} else {
$pro->setStatus(409);
if (count($output) > 0) {
$text = '';
$outputList = $output;
if (count($outputList) > 10) {
$outputList[4] = '...';
for ($i = 5; $i < count($outputList) - 5; $i++) {
$outputList[$i] = '';
}
}
foreach ($outputList as $out) {
if ($out == '') {
continue;
}
$text .= $out . "\n";
}
$pro->addMessage($text);
}
$this->app->response->setStatus(409);
}
}
} else {
// es wurden womöglich nicht genug Parameter übergeben
// er verlangt mindestens den Compiler und einen Parameter
// Bsp.: java $file
}
// nachdem die Einsendung bearbeitet wurde, kann das temporäre
// Verzeichnis mit Inhalt entfernt werden
$this->deleteDir($filePath);
// das Prozessobjekt kann nun zur Ausgabe hinzugefügt werden
$res[] = $pro;
continue;
}
}
}
// wenn nur ein einzelnes Objekt als Eingabe kam, wir auch nur ein Einzelobjekt
// zurückgegeben, ansonsten eine Liste
if (!$arr && count($res) == 1) {
$this->app->response->setBody(Process::encodeProcess($res[0]));
} else {
$this->app->response->setBody(Process::encodeProcess($res));
}
}
示例5: get
public function get($functionName, $sqlFile, $pre = '', $processid, $courseid, $esid, $eid, $comid, $singleResult = false, $checkSession = true)
{
$this->loadConfig($pre);
$pre = ($pre === '' ? '' : '_') . $pre;
Logger::Log('starts GET ' . $functionName, LogLevel::DEBUG);
// checks whether incoming data has the correct data type
$pre = DBJson::mysql_real_escape_string($pre);
$courseid = DBJson::mysql_real_escape_string($courseid);
$esid = DBJson::mysql_real_escape_string($esid);
$eid = DBJson::mysql_real_escape_string($eid);
$processid = DBJson::mysql_real_escape_string($processid);
$comid = DBJson::mysql_real_escape_string($comid);
// starts a query, by using a given file
$result = DBRequest::getRoutedSqlFile($this->query, $sqlFile, array('pre' => $pre, 'processid' => $processid, 'courseid' => $courseid, 'esid' => $esid, 'eid' => $eid, 'comid' => $comid), $checkSession);
// checks the correctness of the query
if ($result['status'] >= 200 && $result['status'] <= 299) {
$query = Query::decodeQuery($result['content']);
if (is_array($query)) {
$query = $query[count($query) - 1];
}
if ($query->getNumRows() > 0) {
$res = Process::ExtractProcess($query->getResponse(), $singleResult);
$this->_app->response->setBody(Process::encodeProcess($res));
$this->_app->response->setStatus(200);
if (isset($result['headers']['Content-Type'])) {
$this->_app->response->headers->set('Content-Type', $result['headers']['Content-Type']);
}
$this->_app->stop();
} else {
$result['status'] = 404;
}
}
Logger::Log('GET ' . $functionName . ' failed', LogLevel::ERROR);
$this->_app->response->setStatus(isset($result['status']) ? $result['status'] : 409);
$this->_app->response->setBody(Process::encodeProcess(new Process()));
$this->_app->stop();
}
示例6: foreach
foreach ($processorParameter as $tempKey => $Data) {
$Data2 = array();
foreach ($Data as &$dat) {
if ($dat !== '') {
$Data2[] = $dat;
}
}
if (isset($tempProcessors[$tempKey])) {
$tempProcessors[$tempKey]->setParameter(implode(' ', array_values($Data2)));
}
}
}
$processors = array_merge($processors, $tempProcessors);
}
}
$processes = json_decode(Process::encodeProcess($processors), true);
#############################
### end create_processors ###
#############################
#endregion
}
$sheet_data['exercises'] = json_decode(Exercise::encodeExercise($exercises), true);
}
}
if (isset($_POST['action'])) {
// && $_POST['action'] == "new"
$timestamp = time();
$errorInSent = false;
// validate all sheet data
$f = new FormEvaluator($_POST);
$f->checkStringForKey('sheetName', FormEvaluator::REQUIRED, 'error', Language::Get('main', 'invalidSheetName', $langTemplate));