背景:我正在为 VPS 上的朋友运行 Minecraft 服务器,并且我正在尝试使用 PHP 为其创建一种“状态网页”。这是我尝试实施的最后一件事;我有一个服务器启动/关闭指示器、在线时间等。
我遇到问题的脚本是显示播放器列表。理想情况下,我想要做的是显示在我的服务器上玩的人的姓名列表,将离线的人涂成灰色,将在线的人涂成蓝色。
现在我遇到问题的部分:
minecraft 服务器 jarfile 在标记为 minecraft 的“屏幕”中执行。要获得在线玩家列表,我应该能够(在屏幕上)执行“列表”,然后输入,它会输出一个玩家列表。
我尝试了许多不同的方式从 PHP 中执行屏幕中的命令,例如:
$online = shell_exec('screen -S minecraft -X print "list\r"');
echo "<pre>Players online: $online";
网页上总是回显的结果是
Players online: No screen session found.
我究竟做错了什么?我的 php 非常糟糕(我从未学习过 PHP,并且正在直接学习参考),但这似乎很简单?
顺便说一句,实现动态突出显示的字符列表的最佳方法是什么?播放的字符数组,explode() 和比较,还是我应该写入数据库并从中比较?
提前谢谢大家。
PS:作为参考,网站位于http://fudgesminecraftserver.info,你可以看到那里发生了什么。