eminmuhammadi/phpcompiler

Python、C++、Java、C11、C的基本PHP编译器

资助包维护!
www.paypal.me/eminmuhammadi

安装: 2

依赖项: 0

建议者: 0

安全: 0

星级: 8

观察者: 1

分支: 3

开放问题: 1

语言:JavaScript

类型:项目

dev-master 2021-07-26 18:21 UTC

This package is auto-updated.

Last update: 2024-09-27 01:18:48 UTC


README

Python、C++、Java、C11、C的基本PHP编译器

git clone https://github.com/eminmuhammadi/phpCompiler.git

入门指南

以下说明将帮助您将项目复制到本地机器上,以便进行开发和测试。有关如何在实时系统上部署项目的说明,请参阅部署部分。

先决条件

您需要安装哪些软件以及如何安装它们

apt-get install g++
apt-get install gcc
apt-get install clang
apt-get install javac
apt-get install python

安装

主源代码位于 src/phpCompiler.php。要在项目中使用此类,您需要设置

require_once 'vendor/autoload.php';

并使用 eminmuhammadi\phpCompiler() 创建新类

$COMPILER = new eminmuhammadi\phpCompiler();

测试

安装后,建议在 test/testAll.php 中运行测试服务

声明变量

  $env = [
   'command'    => 'g++ -std=c++11',
   'executable' => 'a.out',
   'runFile'    => './a.out' , //out
   'time'       => '1', //seconds
   'code'       => $_POST['code'] ,
   'input'      => $_POST['input'],
   'fnCode'     => 'main.cpp',
   'fnInput'    => 'input.txt',
   'fnError'    => 'error.txt'
  ];

time 对循环执行进行操作

设置执行时间(注意)

  $COMPILER->setTimeOut($time);

此规则使PHP文件对循环进行操作。

运行并创建JSON服务

收集编译过程中的所有数据。

  $RESULT = $COMPILER->Run(
                 $env['command'],
                 $env['time'],
                 $env['executable'],
                 $env['runFile'],
                 $env['code'],
                 $env['input'],
                 $env['fnCode'],
                 $env['fnInput'],
                 $env['fnError']
               );

到此为止,我们需要创建一个json类型的应用程序服务。

  header('Content-Type: application/json');

  $data = [
    'code'       => $env['code'] ,
    'time_limit' => $time,
    'input'      => $env['input'],
    'result'     => $RESULT
  ];

  echo json_encode($data,JSON_PRETTY_PRINT);

JSON显示如下

{
    "code": "      #include <iostream>\r\n      #include <string>\r\n      using namespace std;\r\n\r\n      int main()\r\n      {\r\n\r\n        cout <<\"Hello World\"<<endl;\r\n        return 0;\r\n      }\r\n      ",
    "time_limit": 1000,
    "input": "",
    "result": {
        "output": "Hello World\n",
        "time": "0.01",
        "error": "",
        "verdict": "AC"
    }
}

结果

作者

有关参与此项目的贡献者列表,请参阅。

许可证

本项目采用MIT许可证 - 请参阅LICENSE文件以获取详细信息

paypal