0

这是我的问题,我需要从 php 向 python 脚本发送一个变量,这并不难,但我刚刚发现它们不在同一台服务器上。php 文件位于服务器 A 上,可在 server-a.com 上访问,而 python 位于另一台服务器上,可在 server-b.com 上访问。

这是我当前的 php 和 python 代码,它们在同一台服务器上时有效:

PHP:

// Call to the python script test.py with the JSON data
$result = shell_exec('python test.py ' . escapeshellarg(json_encode($data)));

// get data back from python, decode it and display it
$resultData = json_decode($result, true);
//var_dump($resultData);
echo $result;
?>

Python:

    import sys, json

# Load the data that PHP testv2.php sent us
try:
    data = json.loads(sys.argv[1])
except:
    print "ERROR"
    sys.exit(1)

# Generate some data to send to PHP
result = {'status': 'Yes!'}

# Send it to PHP
print json.dumps(data)
4

1 回答 1

0

由于您在不同的服务器上,您可能希望通过 HTTP 进行通信。

如果您的代码真的像示例中所示的那样简单并且永远不会变得更复杂,请考虑通过CGI调用 Python 。

对于其他任何事情(或者如果您只是更喜欢正确执行),请考虑使用 WSGI 和诸如 Flask 之类的框架,它允许您使用 url 路由系统定义多个端点。

于 2013-11-12T16:49:10.573 回答