2012-05-16 108 views
2

我尝试在PHP中编译'C'代码。我正在使用windowsXP和cygwin来编译代码。我运行代码:编译C代码与出.C文件

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文件的方式。还有一个问题,我不能包含任何头文件,因为它需要一个新行。

LIKE“%”等

它也无法识别特殊字符

所有答案和建议是值得欢迎的。

+0

您是否希望我们猜出您遇到的错误? – ThiefMaster

+3

你可能可以用echo和escapeshellarg来狡猾,虽然这个想法让我哭了一下。 – Corbin

+0

@ThiefMaster它不会创建.exe文件,并且可能会考虑所有新行​​并仅在代码'int main()'中运行第一行,这对编译没有任何意义。 –

回答

1

在exc命令之前使用: $ a = preg_replace(“/ \ n /”,'',$ a); //删除所有新行,以便代码实际运行只包含一行...