通过PHP在屏幕上运行和接收命令

时间:2012-10-09 18:54:46

标签: php minecraft

我正在制作一个Minecraft控制面板,但对如何向每个屏幕发送命令感到困惑。我理解如何对屏幕执行命令,但我不理解读取输出。

实施例。我有屏幕A和屏幕B.我想在屏幕A中执行某些操作,然后获取输出,然后退出屏幕。

2 个答案:

答案 0 :(得分:3)

这是一个更简单的解决方案: 在两台服务器中使用Websend bukkit插件(Download&info)。 PHP可以在安装插件和设置php类时简单地执行命令和接收输出,这也可能比bash屏幕更复杂,并且更容易设置和使用。

以下是使用此示例:

<?php
include_once 'Websend.php';

//Replace with bukkit server IP. To use a different port, change the constructor to new Websend(ip, port)
$ws = new Websend($ServerIP, $ServerPort); 

//Replace with password specified in Websend config file
$ws->connect("password");

$ws->doCommandAsConsole("give ".$PlayerName." 64 1");
$ws->disconnect();
?>

在此示例中,脚本项为变量定义的播放器。 您可以执行自定义变量命令,替换$ws->doCommandAsConsole("give ".$PlayerName." 64 1");' to $ ws-&gt; doCommandAsConsole(“$ _ REQUEST ['customCMD']”);其中customCMD是GET或POST形式的字段。

答案 1 :(得分:0)

实际上并不需要插件,但请记住,使用shell_exec可以在安全方面为您打开一个巨大的痛苦世界。

但是,我在drupal中实现控制面板时遇到了类似的问题,我设法使用以下代码将命令运行到屏幕上。

shell_exec("screen -S ScreenName -X stuff \"echo hello world\"'\n'");

欢迎你。