Какие технологии используются для создания сабжа? Имеются в виду системы, по типу используемых в спортивном программировании: человек загружает свой код, указывает язык, код отправляется на сервер, там компилируется, возвращается ответ компилятора. Что можно почитать по данной теме? Какую технологию следует использовать? Существуют ли готовые open source решения?
Если речь именно о компиляции, без запуска, то как-то так?
<?
$commands = [
'ls' => 'ls -la',
'basic' => '/path/to/basic param1 param2',
'java' => '/path/to/java param param',
];
if (isset($_FILES['file']) && !$_FILES['file']['error'] && isset($commands[$_POST['lang']]))
{
$comm = $commands[$_POST['lang']];
$file = $_FILES['file']['tmp_name'];
echo "<pre>";
echo `$comm $file 2>&1`;
echo "</pre>";
}
?>
<form enctype="multipart/form-data" method="POST">
<select name="lang">
<?php foreach ($commands as $key => $void):?>
<option><?=$key?></option>
<?php endforeach ?>
</select><input name="file" type="file" /><input type="submit" /></form>