Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 基于Web的编译器_Php_C++_Html_C - Fatal编程技术网

Php 基于Web的编译器

Php 基于Web的编译器,php,c++,html,c,Php,C++,Html,C,我一直在做一个项目,制作一个可以读取文件(c/c++文本文件)并编译其上编写的代码的网站 如何使用服务器上的编译器?在操作系统中使用编译器。例如,在Linux中,您可以使用gcc。您可以从PHP运行,使用。PHP具有system()和exec()函数。如果$\u POST['code']包含cpp代码,那么这些可能就是您要查找的内容。您可以执行以下操作 $code = do_sanitizing($_POST['CODE']); $filename = "cfile".time().".c";

我一直在做一个项目,制作一个可以读取文件(c/c++文本文件)并编译其上编写的代码的网站


如何使用服务器上的编译器?

在操作系统中使用编译器。例如,在Linux中,您可以使用gcc。您可以从PHP运行,使用。

PHP具有
system()
exec()
函数。如果
$\u 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;
注意:这种事后编译和运行程序的类型存在危险的安全缺陷

  • 您必须清理用户输入
  • C源代码可能会使编译过程崩溃
  • 输出程序可能包含对服务器有害的代码

  • 旁注:在用户输入上启动编译器时,您将面临几个安全问题。请查看他们是如何操作的。另一种方法是将代码翻译成类似JavaScript的内容并在客户端上运行。您可以使用相同的JavaScript编写转换器,并在客户端上运行它。优点:需要处理的安全问题更少,服务器负载更低。缺点:有限的C代码,较慢的“编译”和执行。请给我更多的细节!!你对什么感兴趣?就我而言,您使用GCC来编译C代码,C++为G++。GCC手册页-。当然,如果您的服务器运行在Windows上,情况就完全不同了。您可以指定服务器OS启动,以获得更具体的答案。实际上,我想将我的网站集成在PHP和C++编译程序中,只需单击一个按钮,就可以编辑我上传的文本文件中编写的全部代码。我的网站上显示的唯一结果是它是否正确?你可以坚持Shiplu向上给出的代码。然后只要检查$output,如果它包含任何错误消息。我相信,GCC会将错误发送到标准输出。