从 Python 调用 PHP 的 1:1



我们正在使用Splunk(一种分析日志文件等机器数据的工具),并在PHP中有一个应用程序。对于某些数据,我们需要在 php(基于 CLI)中调用我们的应用程序。不幸的是,Splunk只支持Python调用。
有没有一种简单的方法可以使用相同的参数进行 1:1 "转发/调用"php 并返回输出,就像"直通"一样。我只找到了带有所谓子流程模块的解决方案的一部分,但我的 python 经验为零,所以无法让它工作。

例如,splunk 调用:

python external_lookup.py argument1 argument2 argument3- 然后 python 脚本应该调用(使用 CLI 参数提供给 python):

php external_lookup.php argument1 argument2 argument3- 然后 php 写入其输出
- Python捕获该输出并自行输出

非常感谢任何帮助,或者更好的工作示例脚本。

提前感谢,
文 斯

使用子流程模块中的Popen

import sys
from subprocess import Popen
output = subprocess.Popen(['php', 'path/to/script.php'] + sys.argv[1:], stdout=subprocess.PIPE).communicate()[0]

sys.argv[1:]包含除 python 脚本本身名称之外的所有命令行参数。

使用 subprocess.call

import sys, subprocess
sys.exit(subprocess.call(['php', sys.argv[0].replace('.py', '.php')] + sys.argv[1:]))

编辑:使Python脚本返回PHP脚本返回的值。

相关内容

  • 没有找到相关文章

最新更新