2

PHPで「C」コードをコンパイルしようとしています。私はwindowsXPとcygwinを使用してコードをコンパイルしています。コードを次のように実行します。

PHPコード

$a = ' int main(){ int i; for(i= 0;i!=10;i++) printf("Its Worked");return 0;}';

$o = exec('echo '.$a.' | c:\cygwin\bin\gcc-3 -xc - -o "c:\o\ank.exe"', $errD , $err);

それは完全に機能し、必要に応じて .exe ファイルを作成します。

ただし、コードに新しい行がある場合、つまりコードは現在

$a = ' int main()
{ 
int i;
for(i= 0;i!=10;i++)
 printf("Its Worked");
return 0;
} ';

$o = exec('echo '.$a.' | c:\cygwin\bin\gcc-3 -xc - -o "c:\o\ank.exe"', $errD , $err);

コンパイルエラーになります。

.c ファイルを作成せずにそのようなコードをコンパイルする方法を教えてください。これに関するもう1つの問題は、新しい行が必要なため、ヘッダーファイルを含めることができません.

「%」などの特殊文字も認識されません。

すべての回答と提案を歓迎します。

4

1 に答える 1

1

use before exc command: $a = preg_replace("/\n/",' ',$a); // remove all new line so the code actually run contains one line only...

于 2012-05-28T12:51:04.423 に答える