2

I'm making a Minecraft control panel, but are sort of confused on how to send a command to each screen. I understand how to execute a command to a screen, but I don't understand to read the output.

Ex. I have screen A and screen B. I want to execute something in screen A, and get the output, and then exit the screen.

4

2 回答 2

4

这是一个更简单的解决方案:在两个服务器中使用 Websend bukkit 插件(下载和信息) 。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->doCommandAsConsole("$_REQUEST['customCMD']");来执行自定义变量命令 其中 customCMD 是 GET 或 POST 表单中的字段。`

于 2012-10-15T15:10:47.603 回答
1

实际上并不需要插件,但请记住,在安全性方面,使用 shell_exec 可能会给您带来巨大的痛苦。

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

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

别客气。

于 2013-10-07T13:16:27.507 回答