如何将.PHP脚本中的变量传递给Python,反之亦然?
例如
//myPHPScript.php
$hello = 'hello';
//myPythonScript.py
print(get the result from $hello variable found in myPHPScript.php)
Run Code Online (Sandbox Code Playgroud)
LSe*_*rni 12
取决于您如何调用Python脚本.system()例如,如果你这样做,你可以把它放在参数中:
$hello = 'world';
$result = shell_exec('/path/to/python /path/to/your/script.py ' . $hello);
Run Code Online (Sandbox Code Playgroud)
在Python中:
import sys
who = sys.argv[1]
print "Hello %s" % who
Run Code Online (Sandbox Code Playgroud)
现在$result在PHP中将包含"Hello world".
一种更高效的可能性,并非总是可能但值得考虑,是一种"快速方法"; 您的Python脚本实际上一直在运行并接受套接字连接(例如,使用HTTPlib),例如,端口8888.此时,您可以使用cURL从PHP连接到http://127.0.0.1:8888并发送以JSON编码的结构化数据(因为Python有一个JSON解码器;我我不太确定PHP反序列化器,并通过相同的路径返回信息.
对于所有意图和目的,Python脚本现在都是一个Web服务.您还可以在同一Web服务接口下部署多个不同的脚本,并根据请求中发送的伪URI选择要回答的脚本.
使用这种方法,您需要检查请求之间的状态是否被正确隔离,即,代表Peter请求数据处理不会导致返回属于Paul的数据; 或者所有正在处理的数据都是不安全的,也就是说,它不需要安全性或身份验证.
这种方法的另一个优点是缓存 - python脚本在从PHP发出的请求之间保持活跃,并且可以返回已知问题的相同答案,而不需要重新计算任何内容,如果可行的话.有一些Python的缓存框架可以插入.
另一个优点是,您可以通过在不同的计算机上部署Python服务(不一定可以从更广泛的Internet访问)或甚至几台不同的计算机来轻松扩展此方法.
| 归档时间: |
|
| 查看次数: |
18815 次 |
| 最近记录: |