目前我正在使用PHP执行Python脚本:
<?php
$output = shell_exec('python ../cgi-bin/admin_login.py');
echo $output;
?>
哪个工作正常。它显示脚本中print()
次调用的所有数据。
但是我怎样才能真正将值返回给PHP(而不是将其显示为输出)?显然删除了这个echo调用,但Python返回似乎没有做任何事情。
Python脚本用于登录过程并处理所有MySQL的工作;我知道有限的PHP,所以这就是我为此使用Python的原因。
运行脚本后,将生成一个结果,具体取决于登录是否成功..
e.g. LOGGEDIN, EMPTYUSR, EMPTYPW, WRONGPW.
PHP的进一步操作错误(或正确)的所有代码。
e.g。如果返回时LOGGEDIN = True,PHP应该创建一个会话,以便站点的其余部分知道用户已登录。
所以我想要的是一个从PHP运行Python并获取这些返回值而不在页面上显示它们的解决方案。
任何建议都非常感谢,
Ilmiont
答案 0 :(得分:0)
请勿使用shell_exec()
,而是使用exec()
,然后根据返回的代码决定做什么。
<?php
exec('python ../cgi-bin/admin_login.py', $output, $code);
switch($code) {
case 0:
echo $output;
break;
// other case may follow
}
?>
警告 exec()
仅捕获stdout,而不是stderr
如果您需要使用完整输出:
exec('python ../cgi-bin/admin_login.py 2>&1', $output, $code);