从PHP脚本在Pygame中执行Python游戏


Execute Python game in Pygame from PHP script

这里有一个小概要。我有两块代码,一块是用pygame专门用python编写的游戏。另一个是用PHP/HTML/CSS编写的学习管理系统(LMS)。用户可以点击LMS中的玩游戏选项,因此控制权将转移到python程序,并在游戏结束后返回。

我一直在尝试找出方法,并尝试使用exec()shell_exec()。他们碰巧运行了一个简单的python脚本,但他们没有启动由实际游戏组成的pygame引擎窗口。如果在这方面有经验的人能为我指明正确的方向,我将不胜感激。

locahostWWW服务器就像远程计算机上的WWW服务器——它生活在自己的环境中(出于安全原因)。它可以运行程序,但只能在自己的环境中运行,该环境无法访问屏幕(尤其是其他用户(如人类)使用的屏幕)。服务器不需要屏幕即可工作。


编辑:

对于linux上的本地服务器,您可以尝试设置DISPLAY=:0.0以允许服务器访问本地屏幕

exec('export DISPLAY=:0.0; python game.py');

要获得错误消息,您可以使用:

$descriptors = array(
   0 => array("pipe", "r"),  // stdin
   1 => array("pipe", "w"),  // stdout
   2 => array("pipe", "w"),  // stderr
);
$process = proc_open('export DISPLAY=:0.0; python game.py', $descriptors, $pipes, dirname(__FILE__), null);
$stdout = stream_get_contents($pipes[1]);
fclose($pipes[1]);
$stderr = stream_get_contents($pipes[2]);
fclose($pipes[2]);
echo "stdout: ";
var_dump($stdout);
echo "stderr: ";
var_dump($stderr);