私はプロジェクトに取り組んでおり、ファイル(c/C++テキストファイル)を読み込んでコードをコンパイルするウェブサイトを作っています。ウェブベースのコンパイラ
私のサーバーにあるコンパイラはどのように使用できますか?
私はプロジェクトに取り組んでおり、ファイル(c/C++テキストファイル)を読み込んでコードをコンパイルするウェブサイトを作っています。ウェブベースのコンパイラ
私のサーバーにあるコンパイラはどのように使用できますか?
$_POST['CODE']
にはcppコードが含まれています。あなたは以下を行うことができます。
$code = do_sanitizing($_POST['CODE']);
$filename = "cfile".time().".c";
// put the contents in a file
file_put_contents($filename, $code);
// compile it
$output = system("/usr/bin/gcc $filename 2>&1");
echo $output;
注:プログラムをコンパイルおよび実行のこのタイプは、その後の危険なセキュリティ上の欠陥を持っています。
ご使用のOSでコンパイラを使用してください。例えば、Linuxではgccを使うことができます。 execを使用してPHPから実行できます。
詳細を教えてください!! – Animesh
あなたは何に興味がありますか? 私が心配している限り、GCC for C++コンパイル、G ++ for C++を使用します。 GCCのmanページ - http://linux.die.net/man/1/gcc。 もちろん、サーバーがWindows上で動作している場合はまったく異なります。より具体的な回答を得るために、最初にサーバーOSを指定することができます。 – Arnthor
実際に私はphpにある私のウェブサイトと、C++コンパイラを統合し、ただ一つのボタンでコンパイルすべきアップロードされたテキストファイルに書かれたコード全体をクリックしたい。私のウェブサイトに表示される唯一の結果は、それが正しいかどうかです。 – Animesh
PHPはsystem()
とexec()
の機能を持っています。多分それらはあなたが探しているものですか?
サイドノート:ユーザー入力でコンパイラを起動すると、いくつかのセキュリティ上の問題が発生します。 –
[Codepad](http://codepad.org/about)をチェックして、どのように動作しているかを確認してください。 – PeeHaa
代わりに、コードをJavaScriptのようなものに翻訳してクライアント上で実行することもできます。また、同じJavaScriptでトランスレータを作成してクライアント上で実行することもできます。利点:処理するセキュリティの問題が少なく、サーバーの負荷が低くなります。欠点:限られたCコード、遅い "コンパイル"と実行。 –