这里有一个小概要。我有两块代码,一块是用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);